1

誰かが私に理由を説明してもらえますか?それが望ましい動作である場合、アラートボックスの[OK]をクリックするのに少し遅れると仮定して、次のコードがWebページにアクセスするときに常に同じ値を2回続けてアラートするわけではありませんか?

background.jsの次のコードで設定された通常の単純な拡張機能:

chrome.webRequest.onBeforeRequest.addListener(function(request) {
    alert(request.requestId);
    alert(request.requestId);
    return {};
}, {urls: ["*://*/*"]}, ["blocking"]);

私はこれを得ることができません。AJAXリクエストを実行するため、同じ値を2回ポップアップする必要があります。また、AJAXで遅延が発生する可能性があるため、変数を背後で変更することはできません。

それが望ましい動作である場合、どうすればこれが起こらないようにすることができますか?クロージャは役に立ちますか?

ありがとう

4

3 に答える 3

4

最も可能性の高い理由は、ポップアップが同時に発生している 2 つの異なる要求から来ていることです。たとえば、基礎となる HTTP リクエストごとに複数のリクエストが存在する可能性があります。ポップアップを使用する代わりに、console.log()関数を介してログを記録できます。

于 2012-10-12T15:59:43.630 に答える
0
var rId = request.requestId;
alert(rId);
alert(rId);
于 2012-10-11T18:56:33.727 に答える
0

これはどうですか???

var rId = request.requestId.toString();
alert(rId);
alert(rId);
于 2012-10-11T22:51:12.640 に答える