zoukankan      html  css  js  c++  java
  • JavaScript: top对象

    一般的JS书里都会在讲框架集的时候讲top,这会让人误解,认为top对象只是代表框架集,其实top的含义应该是说浏览器直接包含的那一个页面对象,也就是说如果你有一个页面被其他页面以iframe的方式包含了,无论包含的层级是什么,都可以用top访问最外层的哪一个页面,因为这个页面被浏览器直接包含,这个事情的意义在于如果多个页面被同时加载,他们之间需要通信,就完全可以在最外层的页面设置一个通信对象,其他页面都通过这个对象进行通信(需要说明的是,如果要这么干,需要将他们部署在服务器上进行测试,仅仅在文件系统上测试,可能因为跨域而测试失败)

    测试:

    chorme浏览器,apache2服务器,原生js, index.html包含a.html; a.html包含b.html, b.html包含c.html; c.html通过top对象访问index.html定义的函数以及页面元素

    index.html

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>iframe</title>
    </head>
    <body>
    index.html
    <div id="panel"></div>
    <iframe src="a.html"></iframe>
    <script language="javascript">
    function showMessage()
    {
        alert("hello")
    }
    
    o = new Object();
    o.showMessage = showMessage;
    </script>
    </body>
    </html>

    c.html

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>iframe</title>
    </head>
    <body>
    c.html
    <input type="button" value="click me" onclick="show()" ></input>
    <script language="javascript">
    function show()
    {
        window.top.o.showMessage();
    }
    
    </script>
    </body>
    </html>

    top对象是window对象的子对象,如果要访问页面元素,可以这样写:

    function show()
    {
        o = window.top.document.getElementById("panel");
        o.innerHTML = "hello";
    }
  • 相关阅读:
    壶公随感
    消息称微软受谷歌刺激 急于收购雅虎(zz)
    远程注销Windows用户
    "杀人"游戏中的一些规律
    由两点的经纬度估算距离
    我的城市?
    Blog里的一个bug,dudu看能否修正?
    这两天真烦
    发简历,找上海.Net方面软件开发工作
    "上海.NET俱乐部"聚会筹备进展
  • 原文地址:https://www.cnblogs.com/code-style/p/4237287.html
Copyright © 2011-2022 走看看