IE 中的 CustomEvent window.opener
CustomEvent in IE with window.opener
几天前我就遇到了问题。
我的代码在 firefox 上有效,但在 IE 上无效。我有一个 window 可以用 window.open 打开新的 window;在这个新的 window 中,我做我想做的事,然后我想更新 parent window 上的特定部分。
在 parent window,我有:
$(document).on('myEvent', doThis);
然后在 第二个 window 我有这个(如果可能的话,我不想使用像 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);
当我在新的 window 中执行我想做的事情时,如何在我的“开启者”(或 parent)window 上发送事件,这是由我的“打开的”开瓶器”(或 parent)window ?
谢谢。
通过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
}
}
几天前我就遇到了问题。
我的代码在 firefox 上有效,但在 IE 上无效。我有一个 window 可以用 window.open 打开新的 window;在这个新的 window 中,我做我想做的事,然后我想更新 parent window 上的特定部分。 在 parent window,我有:
$(document).on('myEvent', doThis);
然后在 第二个 window 我有这个(如果可能的话,我不想使用像 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);
当我在新的 window 中执行我想做的事情时,如何在我的“开启者”(或 parent)window 上发送事件,这是由我的“打开的”开瓶器”(或 parent)window ?
谢谢。
通过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
}
}