如何在弹出窗口刷新后从父窗口访问弹出窗口?

时间:2015-11-18 15:46:22

标签: javascript

我有一个打开弹出窗口的父页面。

我可以从父级访问弹出窗口的DOM,但在弹出窗口刷新后,我无法再访问它(未收到按钮上的点击事件)。

我的代码示例:

var popup = window.open('http://d.com/popup.html', 'my_popup', 'width=1200px, height=800px');
popup.window.addEventListener('load', function(){
    var myButton = popup.window.document.getElementById('myButton');
    myButton.addEventListener('click', function(){
      console.log("click");
    })
});

一切正常,直到弹出窗口必须自我刷新:/

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你遇到的问题是,正如Burki之前在评论中所说的那样,当你的弹出窗口重新加载时,myButton对象会被重新创建,而你之前添加的eventListener不再对他有所帮助。

可能你最好的选择是将eventListener代码移动(如果可能)到popup.html页面,因为它会在每次重新加载弹出窗口时执行。

也许使用jQuery的.on()方法来绑定你的eventListener也会有所帮助,尽管在这种情况下我并不是100%肯定。

检查弹出窗口重新加载时是否触发页面中的加载事件代码