JavaScript:在父弹出窗口中添加事件侦听器

时间:2015-02-10 16:50:16

标签: javascript popup

我目前正在尝试在父页面中打开的弹出窗口中添加事件侦听器。

让我再解释一下:iframe中有一个按钮。单击此按钮时,将在调用/保存iframe的父页面中打开一个弹出窗口。

这是我的代码:

parent.window.open(url, "MyParentWindowPopUp", "width=1000, height=800");

使用这行代码,我打开父页面中的弹出窗口。

当打开窗口时我必须在其上创建一个监听器,所以这是我在为非父窗口添加监听器时使用的内容:

if (window.addEventListener) {
    window.addEventListener('message', <?php echo $_htmlId; ?>_receive_message, false);
} else if (window.attachEvent) {
    window.attachEvent('onmessage', <?php echo $_htmlId; ?>_receive_message);
}

如何将此代码转换为父弹出窗口?

提前致谢!

2 个答案:

答案 0 :(得分:2)

您可以将引用存储到打开的窗口

var popupWindow = parent.window.open(url, "MyParentWindowPopUp", "width=1000, height=800");

if (popupWindow.addEventListener) {
    popupWindow.addEventListener('message', <?php echo $_htmlId; ?>_receive_message, false);
} else if (popupWindow.attachEvent) {
    popupWindow.attachEvent('onmessage', <?php echo $_htmlId; ?>_receive_message);
}

答案 1 :(得分:0)

var popup = parent.window.open(/**/);
popup.addEventListener("message", function () {
    console.log("popup window received message");
});
popup.postMessage("foo");

.open为您提供了对该窗口的引用。