如何从 JavaScript 访问父 Iframe

2022-08-30 01:33:24

好吧,我有一个IFrame,它调用相同的域页面。我的问题是,我想从这个被调用的页面(从JavaScript)访问来自这个父Iframe的一些信息。如何访问此 Iframe?

详细信息:有几个像这样的 Iframe,可以加载相同的页面,因为我正在编写 Windows 环境。我打算关闭这个框架,这就是为什么我需要知道我应该从他的内心关闭哪个。我有一个数组保存对这些 Iframe 的引用。

编辑:有iframe是动态生成的


答案 1

您还可以将名称和 ID 设置为相等的值

<iframe id="frame1" name="frame1" src="any.html"></iframe>

因此,您将能够在子页面中使用下一个代码

parent.document.getElementById(window.name);

答案 2

只需从您的框架页面调用window.frameElement。如果页面不在框架中,则将为 。frameElementnull

另一种方式(将窗口元素放在框架内并不那么微不足道),但为了完整性:

/**
 * @param f, iframe or frame element
 * @return Window object inside the given frame
 * @effect will append f to document.body if f not yet part of the DOM
 * @see Window.frameElement
 * @usage myFrame.document = getFramedWindow(myFrame).document;
 */
function getFramedWindow(f)
{
    if(f.parentNode == null)
        f = document.body.appendChild(f);
    var w = (f.contentWindow || f.contentDocument);
    if(w && w.nodeType && w.nodeType==9)
        w = (w.defaultView || w.parentWindow);
    return w;
}