javascript - html5的postMessage无法接收到数据
ringa_lee
ringa_lee 2017-04-11 12:17:02
0
3
578

今天在学习跨域访问的时候,测试了html5的postmessage的使用,遇到了无法接收的问题,从一个页面向页面中的iframe发送数据,无法发送。查阅了很多资料,感觉使用也没有出错,不知道问题出在哪里,希望用过的大牛帮忙看下,下面附上代码:

test.html文件(发送页面)

 

test2.html文件(接收页面)

刷新页面,无法获得alert消息,我在本地服务器下面同一个文件夹里,主页面和iframe应该是处于同一个域下的,不理解为什么同域就出问题了。

PS:发送应该没有问题,因为自发自收是没问题的

 

ringa_lee
ringa_lee

ringa_lee

reply all (3)
PHPzhong

你在test.html中使用的window.postMessage语法中的window其实是指你要发送的目标窗口对象

所以你这里直接拿window用就代表当前窗口,而你当前test.html的窗口中没有监听message事件,所以没办法触发test2.html中的alert

所以你应该这么做,把test.html中window.postMessage中的window用iframe的name来代替

receive.postMessage(....)
    Ty80

    你把test的js代码和test2的js代码对调下试试

      伊谢尔伦

      不是window.postMessage,而是

      var iframWindow = document.getElementById("iframe").contentWindow; iframWindow.postMessage("A secret", "*");

      参考:http://www.jianshu.com/p/a1ad...

        Latest Downloads
        More>
        Web Effects
        Website Source Code
        Website Materials
        Front End Template
        About us Disclaimer Sitemap
        php.cn:Public welfare online PHP training,Help PHP learners grow quickly!