对于Firefox,我点击浏览器图标按钮后会在新标签页中加载一个页面。页面的后台脚本在第一次运行时运行正常,但在重新加载页面时没有运行,在选项卡已打开时再次单击按钮,或者在关闭选项卡并打开另一个选项卡后运行。我必须重新保存脚本,强制卸载/重新加载扩展,以使其正常运行。 清单中是否需要包含哪些内容?
<击>的manifest.json 撞击>
更新:我已将问题与以下代码隔离开来了。刷新页面或再次单击浏览器操作按钮时,执行会跳过 xhr.onreadystate = function(),因此永远不会到达 Main()。对于已经请求/接收的任何内容, xhr.onreadystate 不会改变。
更新2:执行使一个传递到Main()中的三个。所有变量都保留了第一次运行时的值,似乎搞砸了。如何在重新加载页面或单击浏览器图标后清除它们?
function GetData(request)
{
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function()
{
console.log(xhr.readyState + " : " + xhr.status)
if (xhr.readyState == 4 && xhr.status == 200)
{
re_data = JSON.parse(xhr.responseText);
Main();
}
}
xhr.open("GET", request, true);
xhr.send();
}
答案 0 :(得分:0)
我想出了问题和解决方案。我忘了一旦后台脚本打开它在扩展的生命周期内保持打开状态。因此,变量不会重置。无论需要重置的变量都必须手动重置。至于重新加载页面,只重新加载网页,而不是需要手动重新启动的代码(发送到适当的函数)以响应按钮,链接或其他任何内容。