javascript - 找出脚本在哪个 iframe 中执行

标签 javascript dom

我有一个包含多个 iframe 的页面。其中一个 iframe 具有来自不同域的页面。在此 iframe 中还有另一个 iframe,其中包含来自父域的页面。

my page from mydomain.com
  -> an iframe
  -> iframe "#foo" from another-domain.com>
    -> iframe "#bar" from mydomain.com
  -> another iframe

我需要获取对主页内“#foo”节点的引用。安全模型应该允许我这样做,因为“#bar”与主页具有相同的域。所以我正在做的是遍历 window.top 数组并将每个元素与当前为“#bar”窗口对象的 window 对象进行比较。我的测试代码如下:

for (var i = 0; i < top.length; i++) {
    for (var j = 0; j < top[i].length; j++) {
        if (top[i][j] == window) {
            alert("The iframe number " + i + " contains me");
        }
    }
}

这在所有浏览器中都能正常工作,但 Internet Explorer 6 在访问 top[i][j] 时会引发安全错误。关于如何在 IE6 上解决此问题的任何想法?

谢谢!

最佳答案

看起来 IE 不满意您访问 try[i] 的任何属性,因为它属于不同的安全上下文,即使您正在访问的属性将处于相同的安全之下上下文作为脚本。

你可能在这里运气不好。但是,您是否尝试过更换:

  • 尝试[i]
  • 尝试[i][j]

与:

  • try.frames[i]
  • try.frames[i].frames[j]

这应该差不多。这是一个远景,我不知道它是否会奏效,但它可以。

关于javascript - 找出脚本在哪个 iframe 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755292/

相关文章:

javascript - 如何选择位于 DOM 层次结构特定范围内的元素?

javascript - 使用 javascript/jQuery 操作 dom 元素属性的最佳方法

php - Bootstrap 2.2 Typeahead 问题

javascript - 将框架集与页面中的其他 HTML 元素一起使用

javascript - 当兄弟存在时,为什么 nextElementSibling 和 nextSibling 为 null?

javascript - 重构以使用 OOP MVC

javascript - 在 Javascript 中创建一个 HTML DOM select 元素并有一个 onchange 事件

javascript - Jquery 自动完成不是一个函数

javascript - Safari 支持 <img> 尺寸属性,但 JS img 对象缺少

javascript - 如何根据按钮值停止切换按钮循环?