我想在我的javascript中使用以下方法在新窗口打开URL:
var win = window.open(url...);
如何检查这个问题,不要打开同一个窗口并且丢失所有输入的数据。 例如,如果我在新窗口中打开了“www.musite.com/addproduct” URL,输入数据,离开我的工作场所。然后我再次点击打开窗口,新窗口会打开,我就会失去所有数据。
我想在我的javascript中使用以下方法在新窗口打开URL:
var win = window.open(url...);
如何检查这个问题,不要打开同一个窗口并且丢失所有输入的数据。 例如,如果我在新窗口中打开了“www.musite.com/addproduct” URL,输入数据,离开我的工作场所。然后我再次点击打开窗口,新窗口会打开,我就会失去所有数据。
if (typeof win !== 'object') {
win = window.open('http://www.google.com');
}
else {
// Do nothing
}
正如Sani在另一个回答中建议的那样,为了能够重新打开窗口,最好记录窗口何时关闭。 您可以在弹出窗口中监听window.onunload
事件,如下所示:
window.onunload = function() {
window.opener.win = undefined;
}
onunload
事件处理程序将把打开弹出窗口的窗口的全局变量win
设置为undefined
,因此您将能够重新打开该窗口。window.open
函数在成功时返回窗口的引用,失败时返回 null。
您应该检查 win
不是 null:
if (win != null) {
// It is now safe to open the window.
}
当关闭窗口时,您还需要将win
设置为null,以便您知道可以再次打开它。
window.onunload
事件:https://developer.mozilla.org/en/DOM/window.onunload - Daniel Vassallo