我正在使用JavaScript打开一个弹出窗口。

弹出窗口中包含的代码在关闭时将修改打开器窗口上的某些值。

像这样的东西


  window.opener.jQuery('#txtFee')。trigger('change');


仅使用一个窗口时,此逻辑效果很好。但是有一个错误...

有两个窗口可以打开此弹出窗口。如果我从一个窗口打开弹出窗口并保持打开状态,然后从另一个窗口打开弹出窗口,则弹出窗口会刷新得很好,但是window.opener仍引用我用来打开弹出窗口的第一个窗口。有没有办法来解决这个问题?

最佳答案

在打开弹出窗口的两个窗口中,可以将onbeforeunload和/或onunload事件绑定到弹出窗口。

var popWindow = window.open(url, name, options, replace);
popWindow.focus();

popWindow.onbeforeunload = function()
{
    $('#txtFee').trigger('change'); //DO WHATEVER YOU WANT HERE
    console.log("onbeforeunload fired from ", popWindow.name);
}

popWindow.onunload = function()
{
    console.log("onunload fired from ", popWindow.name);
}

关于javascript - window.opener不会改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14349827/

10-12 13:16