[英]CustomEvent in IE with window.opener
几天以来我有问题。
在Firefox上,我的代码有效,但在IE上却无效。 我有一个窗口,使用window.open打开新窗口; 在这个新窗口中,我想要做的事情之后,我想更新父窗口中的特定部分。 在父窗口上 ,我有:
$(document).on('myEvent', doThis);
在第二个窗口中,我有这个(如果可能的话,我不想使用其他库,例如jQuery):
var event = new CustomEvent("myEvent");
window.opener.document.dispatchEvent(event);
window.close();
在Firefox上,代码看起来还可以,但是在IE上却无法正常工作; 我尝试添加一个CustomEvent polyfill(因为我不了解IE无法实现CustomEvent),但是我遇到了新问题... IE不喜欢我的:
window.opener.document.dispatchEvent(event);
当我完成在由“打开程序”(或父级)窗口打开的新窗口中执行所需的操作时,如何在“打开程序”(或父级)窗口上发送事件?
谢谢。
使用jQuery触发父事件
var o = window.opener;
o.$(o.document).trigger("myEvent");
我将hashchange事件用作解决方法,因为IE11通常不会将事件触发到window.opener。
window.opener.window.location.hash = (new Date()).getTime().toString() + '&myEvent=true';
window.close();
开瓶器侧
window.addEventListener('hashchange', function(){
if (window.location.hash.indexOf('&myEvent=true') > -1) {
// fire event on opener
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.