替代iframe中的html top.document

时间:2009-11-05 16:10:38

标签: javascript html dom

我们有一个Web应用程序,我们正在使用“top.document”,因为此应用程序使用iframe,有时我们必须访问顶级文档。

现在问题就出现了,因为我们需要将这个应用程序集成到一个网站中,然后我们将它放在这个网站的iFrame中。由于应用程序使用“top.document”,它将到达网站的“文档”,而不是应用程序的“顶部”。

您有什么想法可以帮助我们解决问题吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

确保您正在查看正确窗口的方法是知道您在框架式应用程序中的位置。

例如,让我们说“主框架”是网站的根。在主框架内,定义了额外的“iFrame”。在这些附加帧中加载的页面需要知道它们在帧层次结构中的位置。

所以你看,了解你在框架和弹出窗口的层次结构中的位置将允许你正确地回溯和定义对以前页面/框架中的窗口中包含的函数和对象的引用。

添加一些Javascript代码,为您提供一个想法:

if (window.self){
    if (window.top == window) {
        if (window.name == "main_frame"){
            MainFrameRef = window.top;
            return MainFrameRef;
         } else {
            return false;
         }
    }
}

答案 1 :(得分:1)

假设你的iframe是一级深度:

parent.document

或者,如果它更深:

parent.parent.parent.parent.document

但我真的希望它不那么深; - )

答案 2 :(得分:0)

如果您正在寻找简单的死亡,请寻找已知的ID,这就是您停止向上爬行的父母以及tops和docs的地方。

或者你可以让每个帧在加载时在一些全局变量(当然是命名空间)中注册,这样你就可以引用它们而不需要遍历DOM。