WebExtensionsを使用して最初のFirefoxアドオンを書き込もうとしています(最初の拡張ではかなり複雑です)。セッション内ですべてのGoogle検索の結果を処理する必要があります(セッション=同じ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ページに入り、それが何をしているのかを確認してから停止します。ページを更新するか、アドレスバーから別のクエリを作成するときにのみ読み込まれます。
検索フィールドを使用して別の検索を行い、処理をやり直すときにアドオンをリロードする方法を見つける必要がありますが、前回の検索の結果を失うことはありません。私はクッキーを使わなければならないと思うが、私はまだそこにはいない。
req.onreadystatechange()
の/の代わりにreq.addEventListener("load", someFunction)
を使用しようとしましたが、問題は解決しませんでした。何か案は?
ありがとうございました!