繁体   English   中英

带有window.opener的IE中的CustomEvent

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM