我几天就遇到了问题。
在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);
如何在我的"揭幕战"上发送活动? (或父母)窗口当我芬兰在我的"揭幕战打开的新窗口中做我想做的事情时#34; (或父母)窗口?
THX。
答案 0 :(得分:1)
使用jQuery从父级触发事件
var o = window.opener;
o.$(o.document).trigger("myEvent");
答案 1 :(得分:0)
我使用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
}
}