检测弹出窗口何时关闭并在填充数据关闭之前保存它?

时间:2015-11-10 12:22:17

标签: javascript google-chrome-extension

我正在使用弹出窗口进行chrome扩展。 Popup有一个表单。问题是:

假设用户填写了表单的一半并决定在应用程序之间切换。当他返回时,弹出窗口已关闭,他必须再次打开弹出窗口并再次填写所有细节。我想在弹出窗口关闭之前在localStorage中保存数据。我之前在使用window.onbeforeunloadwindow.unload的网页中完成了此操作,但这些似乎无法在弹出窗口中使用。

我尝试过的事情:

  1. 使用window.onbeforeunload
  2. 当我使用开发人员工具中的location.reload() (检查弹出窗口)时,会触发此事件并将数据存储在localStorage中。但在正常运行期间(没有开发人员工具并在弹出窗口外点击),此事件不会被触发(我通过检查localStorage中的值确认)

    1. 使用chrome.runtime.connect
    2. 使用chrome.runtime.connect连接到后台页面,当弹出窗口关闭时,port.onDisconnect会在后台页面中触发。这只会告诉我弹出窗口何时关闭。在我从弹出窗口请求数据之前,它已经关闭。

      1. 使用window.unload
      2. 这似乎适用于某些人,但我遇到与window.onbeforeunload

        相同的问题
        1. 使用blur事件(工作但效率不高):
        2. 在所有输入字段上添加blur,当这些输入字段中的任何一个失去焦点时,保存所有填充的值。即使用户在弹出窗口外点击,它也会被触发。但这不是一种有效的方式。

          还有其他选择吗?

0 个答案:

没有答案