我正在尝试创建一个 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;
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"]
}
]
}
注意:我确实尝试了从 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/