Javascript IE中带有window.opener的CustomEvent

Javascript IE中带有window.opener的CustomEvent,javascript,internet-explorer,events,dispatchevent,window.opener,Javascript,Internet Explorer,Events,Dispatchevent,Window.opener,我几天来一直有问题 在firefox上,我的代码可以工作,但在IE上不行。我有一个窗口,可以用window.open打开新窗口;在这个新窗口中,我做我想做的事情,然后我想更新父窗口上的特定部分。 在父窗口上,我有: $(document).on('myEvent', doThis); 在第二个窗口中,我看到了这个(如果可能的话,我不想使用其他库,比如jQuery): 在Firefox上,代码似乎没问题,但在IE上却不起作用;我试图添加一个(因为我不理解IE没有实现CustomEvent),但我

我几天来一直有问题

在firefox上,我的代码可以工作,但在IE上不行。我有一个窗口,可以用window.open打开新窗口;在这个新窗口中,我做我想做的事情,然后我想更新父窗口上的特定部分。 在父窗口上,我有:

$(document).on('myEvent', doThis);
第二个窗口中,我看到了这个(如果可能的话,我不想使用其他库,比如jQuery):

在Firefox上,代码似乎没问题,但在IE上却不起作用;我试图添加一个(因为我不理解IE没有实现CustomEvent),但我有一个新问题。。。IE不喜欢我的:

window.opener.document.dispatchEvent(event);
当我想在我的“开启者”(或家长)窗口打开的新窗口中做我想做的事情时,如何在我的“开启者”(或家长)窗口上发送事件


Thx.

使用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
    }
}

IE从IE9开始就支持了。为什么不直接使用jQuery的触发器呢?@Teemu我使用IE11,当我不使用CustomEvent polyfill时,我在“var event…”行上出现了一个错误“SCRIPT445:Cet objet ne gère pas cette action”@epascarllo我试着像这样使用jQuery:window.opener.$(document.trigger('myEvent')$(文档,window.opener).trigger('myEvent');但是什么都不管用…@Teemu首先,我试过这个:var evt=document.createEvent(“事件”);evt.initEvent(“refreshLogCom”,真,假);window.opener.document.dispatchEvent(evt);但它不起作用!我刚刚将“var-evt=document…”更改为“var-evt=window.opener.document…”;我在Firefox和IE上试用过,效果不错!你认为我可以在prod中使用这个吗?非常感谢!它起作用了@Teemu给了我一个同样有效的解决方案(没有jquery)。也要感谢他。
window.addEventListener('hashchange', function(){
    if (window.location.hash.indexOf('&myEvent=true') > -1) {
        // fire event on opener
    }
}