【发布时间】:2012-12-19 09:29:21
【问题描述】:
我有一个弹出窗口,我希望从那里重新加载父窗口,但要重新加载特定的框架而不是整个页面。
因此,用户从框架中单击一个按钮,它会打开弹出窗口。现在从弹出窗口中,基于特定事件,我想从父窗口重新加载一个框架。
这在 IE 中可行吗?
我有一个页面 index.php,其中有 2 个 iframe。
从第二个 iframe 中打开一个新的弹出窗口。
当用户单击按钮或关闭弹出窗口时,我想重新加载 iframe#2(打开窗口的那个)。
我该怎么做?
我试过了:
opener.location.reload();
opener.top.document.getElementById('myIFrameId').location.reload()
opener.myIFrameId.location.reload();
似乎没有任何效果。
【问题讨论】:
-
“弹出窗口”是 IE 的新实例还是网页上的模式?
-
通过 javascript 创建,window.open(...)
-
您可以通过
opener变量从弹出窗口访问父窗口。从那里您可以使用getElementById查找 iframe,使用getElementsByTagName查找所有 iframe 或使用window.frames属性。你在这条路上卡在哪里了? -
@FrankvanPuffelen 我试过:window.opener.document.getElementById('myIFrameID').reload();但我收到一条错误消息:Uncaught TypeError: Cannot call method 'getElementById' of undefined
-
弹出窗口和主窗口是否来自同一个域?如果不是,您正在访问浏览器的安全模型。如果这就是你要打的,谷歌那个“同源策略”或“XSS”,因为那里已经有很多很好的解释了。
标签: javascript jquery internet-explorer popup window