ナビゲーターがリクエストを行う直前に、特定のサイトをブロックするリスナーがあります。
window.addEventListener('load', registerMyListener, false);
function registerMyListener() {
window.getBrowser().addTabsProgressListener(myListener);
}
var myListener = {
onStateChange:function(aBrowser,aProgress,aRequest,aFlag,aStatus) {
if ( /* check if the request is 'www.example.com' */) {
blockSite(aBrowser, aRequest.URI.host, aRequest.URI.spec);
}
}
}
私の問題は次のとおりです。「www.google.com」(許可されたURL)にアクセスすると、ページが通常どおり読み込まれます。次に、「www.example.com」(ブロックされた URL) と入力すると、blockSite 関数が実行され、「window.stop()」を使用してリクエストが停止し、アラートが表示されます。Firefox を再起動すると、「www.google.com」(最後に要求された URL) が読み込まれますが、アドレス バーに「www.example.com」が表示されます。
「www.example.com」のリクエストを停止するためにどのイベントを使用する必要があり、Firefox はそのリクエストを引き続き処理するので、再起動すると、Firefox は (「www.google.com」ではなく) 再度リクエストしますか?
問題は、Firefox が「自分の行き先を認識する」前にリクエストを停止したときだと思います。