0

Firefoxの場合、ブラウザアイコンボタンをクリックした後に新しいタブで読み込まれるページがあります。ページのバックグラウンドスクリプトは最初にうまく動作しますが、ページを再読み込みしたり、既に開いているタブでもう一度ボタンをクリックしたり、タブを閉じて別のタブを開いたりしてからは起動しません。私はスクリプトを再保存して、拡張機能を強制的にアンロード/再ロードして正しく実行する必要があります。 私に含める必要があるマニフェストには何かがありますか? 拡張背景スクリプトは再保存されないとロードされません

manifest.jsonを

アップデート:私は以下のコードに私の問題を分離しました。ページを更新するか、ブラウザのアクションボタンを再度クリックすると、実行はになり、xhr.onreadystate = function()にスキップされ、決してメイン()にはなりません。要求/受信されたものについては、xhr.onreadystateは変更されていません。

更新2:実行により、Main()へのパススルーが3つになります。すべての変数は最初の実行からそれらの値を保持しています。ページをリロードした後、またはブラウザのアイコンをクリックした後で、どうやってクリアするのですか?

function GetData(request) 
 
{ 
 
    var xhr = new XMLHttpRequest(); 
 
    
 
    xhr.onreadystatechange = function() 
 
    { 
 
    console.log(xhr.readyState + " : " + xhr.status) 
 
    if (xhr.readyState == 4 && xhr.status == 200) 
 
    { 
 
     re_data = JSON.parse(xhr.responseText); 
 
     Main(); 
 
    } 
 
    } 
 
    
 
    xhr.open("GET", request, true); 
 
    xhr.send(); 
 
}

+0

いいえ、* manifest.json *に記載されている内容は、あなたが何を記述するものであってはなりません。 * background.js *と* modify_page.js *ファイル、または少なくとも問題を複製するのに十分なファイルを含めて、何が起きているのかを知るには、* complete * [mcve]が必要です。 – Makyen

答えて

0

私は、問題と解決策を考え出しました。私はバックグラウンドスクリプトが開いているのを忘れてしまった。したがって、変数はリセットされません。どの変数をリセットする必要があっても、手動でリセットする必要があります。ページをリロードする場合は、ボタン、リンクなどに応じて手動で再起動する必要があるコード(適切な機能に送信される)をリロードするのではなく、ウェブページのみをリロードします。

関連する問題