lla*_*s48 5 javascript jquery popup google-chrome-extension window.onunload
当用户未按"保存"并且Chrome扩展程序弹出窗口关闭或导航到其他选项卡时,我正在尝试防止信息丢失.我从弹出窗口保存文本,并在弹出窗口再次打开后将其放回原处.
所以,我有这个代码来检测background.js中的关闭弹出窗口:
var backgroundPage = chrome.extension.getBackgroundPage();
window.addEventListener("unload", function() {
if(saved === false) {
var savedText = document.getElementById('textbox').value;
localStorage.setItem('text', savedText);
backgroundPage.console.log(localStorage.getItem('text'));
}
}, true);
Run Code Online (Sandbox Code Playgroud)
在另一个函数中,一旦再次加载弹出窗口,我将数据设置为
if(localStorage.getItem('text') !== "") {
document.getElementById('text').value = localStorage.getItem('title');
}
Run Code Online (Sandbox Code Playgroud)
但是,这有时只能起作用.我看过其他帖子,铬有一个bug:检测卸载事件.但是,我看到的问题很奇怪.当我没有我的后台页面检查视图打开时,导航离开并重新打开后,数据不会显示在弹出窗口的文本框中.但是,如果我的背景页面检查视图打开,数据显示在文本框中...我是Chrome扩展开发的新手,有人可以帮我解决这个问题吗?
我还尝试了为消息传递设置端口的其他建议,但不确定如何正确执行此操作.在background.js中:
port.onDisconnect.addListener(function() {
backgroundPage.console.log("Disconnected");
})
Run Code Online (Sandbox Code Playgroud)
我需要什么吗?我在哪里设置端口和chrome.runtime.onConnect?这是什么代码?
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |