我的 Firefox 扩展的 javascript 代码不断无法控制地重新加载页面

标签 javascript firefox-addon firefox-addon-webextensions page-refresh

我正在尝试创建一个 Firefox 插件/扩展来将参数添加到特定页面的 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; 

ma​​nifest.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"]
    }
  ]

}

注意:我确实尝试了从 Stackoverflow 中找到的相同场景的一些示例

最佳答案

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;
    }

关于我的 Firefox 扩展的 javascript 代码不断无法控制地重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53678362/

相关文章:

javascript - 已禁用的 Firefox 附加组件 ActionButton 未灰显

javascript - 网络扩展 : Intercept special protocol links

javascript - 如何使用 fetch 在 firefox 或 chrome 扩展程序中获取网页的 HTML 源代码?

javascript - 使用 '%s' 引用所选文本时如何去掉省略号?

javascript - 打印时嵌套 JSON 对象未显示

javascript - 在字符串中搜索数组中的单词

javascript - 如何在 sencha touch 中对文本字段进行字母数字验证

javascript - 设置子节点的属性

javascript - 从 Firefox 扩展获取变量

javascript - 插入带有 firefox 扩展名的本地 css 文件