javascript 我的 firefox 扩展的代码总是无法控制地重新加载页面

javascript code of my firefox extension keeps reloading the page uncontrolablly

我正在尝试创建一个 Firefox add-on/extension 以将参数添加到特定页面的 URL 末尾,并使用添加了参数的新 URL 重新加载页面.

下面代码的问题是它确实添加了参数,但是它一直不受控制地重新加载新页面

初始URL https://www.example.com/questions/foo/bar

分页已更改 URL https://www.example.com/foo/bar?abcd=1

script.js

var url = window.location.href;    
if (url.indexOf('?') > -1){
   window.stop()
}else{
   url += '?abcd=1'
}
window.location.href = url; 

manifest.json

{

  "manifest_version": 2,
  "name": "some name",
  "version": "1.0",

  "description": "some description",

  "icons": {
    "48": "icons/explore-48.png"
  },

  "content_scripts": [
    {
      "matches": ["*://www.example.com/*"],
      "js": ["script.js"]
    }
  ]

}

注意 :我确实尝试了几个从 Whosebug

找到的相同场景的示例

JavaScript 不会等待整个 if 语句执行后再继续它后面的内容,因此 url 的值在页面重新加载之前永远不会改变。要解决此问题,只需将 window.location.href = url; 移动到您的 else 中,如下所示:

var url = window.location.href;
    if (url.indexOf('?') > -1) {
        window.stop()
    } else {
        url += '?abcd=1'
        window.location.href = url;
    }