WebExtensions を使用して最初の Firefox アドオンを作成しようとしています (最初の拡張機能は非常に複雑です)。セッション内のすべての Google 検索の結果を処理する必要があります (セッション = 同じ Google ページを使用したクエリ)。次のコードがあります。
マニフェスト.json:
{
"manifest_version": 2,
"name": "MyAddon",
"version": "0.0.1",
"description": "My Add-on",
"icons": {
"48": "icons/icon-48.png"
},
"applications": {
"gecko": {
"id": "myaddon@local",
"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)
/besides の代わりに使用しようとしましreq.onreadystatechange()
たが、問題は解決しませんでした。何か案は?
ありがとうございました!