我希望browser_action像显示和隐藏弹出窗口一样.html。不重新加载。我的 Chrome 扩展程序会捕获用户交互并存储在会话存储中,以便执行后续步骤。但是一旦我单击browser_action按钮,它就会重新加载弹出窗口.html一切都会丢失。
请帮忙
我的清单.json 文件:
{
"name": "...",
"version": "0.1",
"manifest_version": 2,
"permissions": [ "tabs", "storage"],
"background_page" : "background.html",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"description": "---",
"icons": {
"128": "icon.png"
},
"content_security_policy": "script-src 'self'; object-src 'self'",
"browser_action": {
"default_popup": "popup.html",
"default_icon": "icon.png"
}
}
弹出窗口.html:
<script src="background.js"></script>
</head>
<body>
<form method="get" name="form">
<center>
<input type="button" name="bt" value="Record" id="b1"></input><br><br>
Status: <br><input type="text" name="status" value="Not recording" align="middle" id="status1" disabled></input>
</form>
</center>
</body>
</html>
背景.js:
.
..function record(){
do stuff
sessionStorage.setItem(result, id);
}
...functions
....functions
document.addEventListener('DOMContentLoaded', function () {
document.getElementById("b1").addEventListener("click",record);
});
这就是浏览器操作应该的工作方式,您无法更改它们以在单击时切换。
在新选项卡或窗口中打开页面将导致启动新会话。
如果您希望存储更持久,请改用localStorage
。它具有与sessionStorage
相同的界面,但不会在新选项卡/弹出窗口中重置。