Я пытаюсь написать свое первое дополнение Firefox с помощью WebExtensions (это довольно сложно для первого расширения). Мне нужно обработать результаты всех поисковых запросов Google в течение сеанса (session = query, используя ту же страницу Google). У меня есть следующий код:Обновить Firefox-аддон, когда страница динамически изменена
manifest.json:
{
"manifest_version": 2,
"name": "MyAddon",
"version": "0.0.1",
"description": "My Add-on",
"icons": {
"48": "icons/icon-48.png"
},
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0"
}
},
"content_scripts": [
{
"matches": ["*://www.google.com/*"],
"js": ["index.js"]
}
]
}
index.js:
var pageUrl = window.location.href;
var req = new XMLHttpRequest();
req.open("GET", pageUrl, true);
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
handleResponse(req.responseText);
};
};
req.send();
function handleResponse(pageContent) {
// Do some processing ...
}
Он делает именно то, что мне нужно для первого поиска (с помощью адресной строки). Однако надстройка загружается при первом входе на страницу Google, делает то, что ей нужно, а затем останавливается. Он только перезагружается, когда я обновляю страницу или делаю другой запрос из адресной строки.
Мне нужно найти способ перезагрузить надстройку, когда я делаю другой поиск с помощью поля поиска и выполняю обработку снова, но не теряя работу из предыдущих поисков. Полагаю, мне придется использовать файлы cookie, но я еще не там.
Я пытался использовать req.addEventListener("load", someFunction)
вместо/кроме req.onreadystatechange()
, но это не решило проблему. Есть идеи?
Спасибо!