美文网首页
不同frame之间传值的方法

不同frame之间传值的方法

作者: 星月西 | 来源:发表于2017-04-22 21:28 被阅读139次

    1.不同frame是同源的

    • 不同框架之间能够通过iframe元素的contentWindow属性,获取到彼此的window对象,就能通过window.document访问各自的属性和对象。
    function test(){
                //获取子框架的window对象
                var win=document.getElementById('frame').contentWindow;
                var text=win.document.getElementById('title').innerText;
                document.getElementById('show').innerText=text;
            }
    
    • 同源的不同框架共用同一个本地存储localStorage,可以通过监听storage事件(webkit不支持此事件),来进行通信。

    2.不同frame是不同源的

    • 不同框架可以获取到彼此的window对象,但是不同源的话就不能使用获取到window对象的属性和方法,此时可以通过设置为同样的document.domain,就能访问相应的属性和方法。
      document.domain='example.com';

    • 通过HTML5中的window.postMessage来跨域传送数据,接收消息的框架监听message事件,消息内容存储在事件对象的data属性中。

    相关文章

      网友评论

          本文标题:不同frame之间传值的方法

          本文链接:https://www.haomeiwen.com/subject/gnzszttx.html