我先把情况说一下:
是这样的,我本地写了一个很大的JS代码库,实现了
一个在线聊天的功能。假设我的域名是www.aaa.com
现在另一个网站(假设叫www.bbb.com)要使用此功能,它只需要把我的JS文件的绝对地址
使用<script>导入到它的网站即可。
像下面这样:
<script type="text/javascript" src="http://www.aaa.com/js/index.js"></script>
然后在
他的网站(www.bbb.com)添加一个连接调用我定义的函数,即可实现聊天功能。
在我的聊天页面会自动检测用户是否已经登录,如果未登陆,提示用户登录。
现在的问题就是用户登录页面是它的(www.bbb.com)不是我的(www.aaa.com)
等待用户登录成功以后会回传一个参数给我的聊天页面进而实现登录的效果。
请问:
有几种方法我可以实现登录页面的链接地址为它的(www.bbb.com)的地址?我的思路是获取www.bbb.com的地址然后传给我的聊天页面进而设置链接地址为www.bbb.com的地址。
问题在于获取www.bbb.com的地址的JS所在的域肯定是www.bbb.com,
需要参数值的聊天页面却在www.aaa.com这个域,就是说已经严重跨域了。
怎样使这两个页面能通信?
还有没有其他的方法?
注意:
这里的www.bbb.com是动态的,就是说我可以把我的JS代码插入到许多的网站中去,
所以www.bbb.com不是固定的。
还有就是在聊天页面的标题栏总是显示我的地址,能不能显示对方的地址?
我加了document.title=dom;属性dom为获取到的对方域名,
但是结果是先显示我的地址然后就是对方地址,
这怎么解决?有办法实现吗?
急!急!急!
希望大家给几套思路。谢谢!!!

解决方案 »

  1.   

    我个人感觉用户登陆全部交给bbb.com去做.
    你的js多提供参数入口,至于是否登陆,登陆后的用户信息可以让bbb.com来传给你.
    例如:
    var isLogin=false;
    var LoginPage="http://www.bbb.com/login.aspx";
    var LoginUserInfo={Name:"XX",Age:33};你的js里如果得到isLogin为false的话,就会弹出未登陆提示或者转到LoginPage.你的js所负责的只是聊天, 由bbb.com给你提供聊天所必需的元素,例如LoginUserInfo(用户信息)我的思路就是这样.楼下继续....
      

  2.   

    www.bbb.com这个地址是动态的,你的目的,你的js被该网引用之后,要获取该网的地址,然后回传给你www.aaa.com,那直接用url传值的方式,从这个url传到那个url不就行了,不存在跨域说法吧~~~除非是你本地的js,去操做人家的页面,有跨域的问题。现在人家引用了你的js,js已经到人家那里去了~~~可以说,是人家页面的js了,和你www.aaa.com这边的js应该没联系了吧,可以理解为,他的js放在你那里了,每次去下一下而已~~~哪来跨域的说法啊~~~~
      

  3.   


    谢谢了,我的思路就是这样的。
    但是我这里有点不一样,所有的登陆页面的地址都是相似的,
    比如说对方的网址为www.bbb.com,那么登陆页面肯定为login.bbb.com
    对方的网址为www.ccc.com,那么登陆页面肯定为login.ccc.com
    也就是说前面肯定是login+域名形式。
    所以登陆页面的地址全部由我来做,客户不用做任何事情。
    我的思路是获得www.bbb.com
    之后使用替换获得登陆页面的地址,而且我也已经在插入页获取到了地址和替换已经成功,但是
    没有办法传给我的聊天页面,在传参数的时候是跨域的,
    请问有没有办法解决?或者使用其它方法也行?
      

  4.   

    你聊天的用户,是aaa的数据库的,还是aaa,bbb,ccc数据库都有?感觉是有点绕
      

  5.   

    首先,你的aaa网站中的js程序中不要使用绝对地址,而只能使用相对地址.
    其次,将调用的网址传递过去,如验证通过后将其打开.
      

  6.   


    我也不知道我是否弄明白了,感觉一点迷糊.
    假设你的js为 http://www.aaa.com/chat/chatLib.js
    现在www.bbb.com引入了你的js,你能够正常的获得www.bbb.com这个域,这是肯定没问题的.
    "没有办法传给我的聊天页面"这句话不明白,如果你是在js里输出iframe(iframe指向你的聊天页面)的话,那这样行不行,使用js将将当前域做为参数传给iframe.
    iframe.src="http://www.aaa.com/myChatPage.aspx?domain=bbb.com"我不知道能不能这样理解.