【问题标题】:IE Overwrite window.topIE覆盖window.top
【发布时间】:2010-10-09 02:21:50
【问题描述】:

我试图让一个页面相信它是 window.top,即使它位于 iframe 中。

在FF中你可以做到

window.defineGetter('top', function() { return window});

在 Webkit (Safari/Chrome) 中你可以简单地做

window.top = 窗口

但在 IE 中,这些方法都不起作用。以前有人做过吗?

【问题讨论】:

标签: javascript internet-explorer dom


【解决方案1】:

试试window.top = window.top.window

更多详情请关注DOM Window

【讨论】:

  • 不幸的是,这不起作用。问题是IE在尝试设置window.top(甚至是window)时抛出错误
【解决方案2】:

设置 window.top 不起作用。它在 IE 中是不允许的。

我最终不得不制作自己的假窗口对象,用窗口对象的大部分属性填充它,然后制作一个假的 .top 属性。

【讨论】:

    【解决方案3】:

    我可能会尝试使用 John Resig 在其article on the topic 中使用的“define getter”表示法:

    Window.prototype.__defineGetter__('top',function(){return this;});

    【讨论】:

      【解决方案4】:

      使用这个:

      Object.defineProperty(window, "parent", { 
              get: function() {return window;} 
          }
      );
      

      更多信息here

      【讨论】:

        猜你喜欢
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 2015-07-11
        • 2015-07-16
        • 1970-01-01
        • 2011-02-04
        相关资源
        最近更新 更多