终极javascript跨域访问–跨域的相互操作

来源:百度文库 编辑:神马文学网 时间:2024/04/25 03:25:15
采用json-p实现跨域访问是没有问题的,但是要实现两个页面之间的交互难度还是不小的。
plaxo给我们提供了这种方式,网站有demo,还有使用向导。
我用他们提供的代码整了个例子,可以下载的试试看就知道是什么效果了。
例子总包含两个文件plaxo-cb.html和demo.html.
plaxo-cb.html中的代码是这样的
PLAIN TEXT
HTML:





demo.html中的代码是这样的:
PLAIN TEXT
HTML:








Add from my address book


原理图是这样的:

其中的关键就是cb.html,以及demo.html的open动作,这两个文件都引用了domainB中的js文件,而且open.html是demo.html打开的。而open.html在domainB中,它通过iframe包含了cb.html(其实是隐藏起来了,DOM结构中可以找到,但是页面上看不到),由于cb.html和demo.html在同一个域中,所以这两个文件是可以相互通信的。由于cb.html引用了domainB中的Js文件,所以open.html本身是可以和cb.html进行通信的,那么当它从服务器取到数据以后就会通知cb.html,然后cb.html和open.html的opener,也就是demo.html进行通信,将结果发过去,那么demo.html就从domainB中取到了数据。