标签:style blog java color 文件 width
艾伦说过,一切学习都是从模仿开始,我也不例外。下面我要说的是两个页面之间的通信问题。
假设现有a.html 需要与b.html进行数据交互,a通过iframe加载b.html
a.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <iframe src="b.html" style="width: 100%; height: 50%;"></iframe> <button>click</button> <script type="text/javascript"> var btn = document.querySelector(‘button‘); btn.addEventListener(‘click‘,function(e){ var message = ‘hello‘; window.parent.frames[0].postMessage(message, ‘*‘); }); </script> </body> </html>
b.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript" src="pms.js"></script> <title>b</title> </head> <body> here is the content about iframe b <div></div> </body> <script type="text/javascript"> window.onload = function(){ var div = document.querySelector(‘div‘); window.addEventListener(‘message‘,function(e){ //div.innerHTML = e.data; if(e.data==‘hello‘){ data.hello(e.data) } }) } </script> </html>
我们把消息数据放在一个单独的文件pms.js中。
pms.js:
var data = { hello : function(e){ alert(55555) } };
a是我们目标页面,现在要发一个hello的消息到b页面。b页面收消息之后,检查消息内容,如果是hello,则执行消息中指定的动作,比如运行一个函数。
原理就是这样,利用message事件进行消息传递,然后把消息的动作放在一个单独的文件中,如pms.js
在项目中有遇到类似情况的,请自行对照试验,就可以看到效果。
两个iframe之间的异步通信,布布扣,bubuko.com
标签:style blog java color 文件 width
原文地址:http://www.cnblogs.com/afrog/p/3829910.html