我有一个弹出窗口,从那里我想重新加载父窗口,但是要重新加载特定的框架而不是整个页面.
因此,用户单击框架中的按钮,它将打开弹出窗口.现在,基于特定事件,从弹出窗口中,我想从父窗口重新加载框架.
在IE中可能吗?
我有一个页面index.php,其中有2个iframe.
从第二个iframe中打开一个新的弹出窗口.
当用户单击按钮或关闭弹出窗口时,我想重新加载iframe#2(打开窗口的那个).
我怎样才能做到这一点?
我努力了:
opener.location.reload();
opener.top.document.getElementById('myIFrameId').location.reload()
opener.myIFrameId.location.reload();
似乎没有任何作用.
解决方法:
我发现了一个很棒的jQuery插件,可在所有现代浏览器(包括IE8)中使用.
它使您可以轻松地使用参数调用辅助浏览器窗口,然后允许在两者之间传递数据,类似于postMessage API的工作原理.
一旦您分析了传入的jQuery数据,这些数据消息又可以将新内容或备用网页加载到父页面上的原始iframe2中.
文章:jQuery plugin for communication between browser windows
在线演示:Parent Page
下载项目:windowmsg.zip
下载的文件将直接从您的桌面上工作,与jsFiddle不同,因为那里不允许这样做.
当您不需要辅助浏览器窗口并且可以使用浮动iframe时,另一种效果很好的解决方案,只需使用具有iframe功能的灯箱克隆,例如Shadowbox-js.
这种方法的好处是,您可以完全控制iframe的关闭方式,这不同于上面的辅助浏览器窗口具有自己的浏览器关闭按钮,该按钮可能不会触发您想要的事件.
灯箱克隆关闭事件期间的回调可用于根据需要更改父页面iframe 2中的内容.另外,您可以选择将灯箱绑定到iframe 2中(在iframe页面中安装灯箱克隆),或将其全屏显示(在父页面中安装灯箱克隆).