javascript:页面刷新时弹出关闭

时间:2016-12-06 13:15:16

标签: javascript

以下是我的javascript代码。

弹出窗口正在打开,但我的页面正在刷新。现在我必须关闭弹出窗口。我想在localStorage中保存popupWindow。但是当我通过localStorage.getItem("someVarName")时。我没有得到原始的dom,看起来像它改变了。 当我的页面正在刷新时,我必须保存dom。

请建议如何操作。

<script language="javascript" type="text/javascript">
  function openPopup(URL) {
    popupWindow = window.open(URL, 'popupWindow', 'height=300,width=450');
    localStorage.setItem("someVarName", popupWindow);
  }

  function closePopup() {
    var popupWindow = localStorage.getItem("someVarName");
    popupWindow.close();
  }
</script>

1 个答案:

答案 0 :(得分:1)

网络存储字符串。您无法在其中存储窗口参考。

可以,但是,存储您使用的名称并将其重用于window.open

function openPopup(URL) {
    window.open(URL, 'popupWindow', 'height=300,width=450');
    localStorage.setItem("someVarName", "popupWindow");
}

function closePopup() {
    var name = localStorage.getItem("someVarName");
    if (name) {
        var wnd = window.open("", name);
        wnd.close();
        localStorage.removeItem("someVarName");
    }
}

使用您的网页有权访问的现有窗口的名称调用window.open,可以引用该现有窗口,而不是打开一个新窗口。

请注意当窗口未打开时我是如何从存储中清除名称的,所以我们不会尝试关闭它(矛盾的是,打开它)。

我的answer to this other question有一个完整的例子。