0

对于 Firefox,我有一个页面在单击浏览器图标按钮后加载到新选项卡中。页面的后台脚本第一次运行良好,但在重新加载页面、在已打开选项卡的情况下再次单击按钮或关闭选项卡并打开另一个选项卡后无法正常运行。我必须重新保存强制卸载/重新加载扩展的脚本才能正确运行。清单中是否有我需要包含的内容?

清单.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();
}

4

1 回答 1

0

我弄清楚了问题和解决方案。我忘记了一旦后台脚本打开,它就会在扩展的生命周期内保持打开状态。因此,变量不会被重置。任何需要重置的变量都必须手动重置。至于重新加载页面,只有网页被重新加载,而不是需要手动重新启动(发送到适当的函数)以响应按钮、链接或其他内容的代码。

于 2016-10-06T15:38:19.410 回答