JavaScript-код моего расширения Firefox постоянно перезагружает страницу - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь создать дополнение / расширение Firefox для добавления параметра в конец 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"]
    }
  ]

}

Примечание : я попробовал несколько примеров, найденных для того же сценария из Stackoverflow

1 Ответ

0 голосов
/ 08 декабря 2018

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