1

Google Chromeで小さな拡張機能を使用しています。新しいタブを作成し、URL "sample" + i + "。com"に移動し、このURLでコンテンツスクリプトを起動し、現在のタブを "sample" +( i + 1)+ "。com"をクリックし、同じスクリプトを起動します。stackoverflowで利用可能なQ&Aを調べてグーグルで検索しましたが、機能するソリューションが見つかりませんでした。これは私の実際のbackground.jsのコードです(動作します)。2つのタブ(i=21とi=22)を作成し、chrome.tabs.updateを実行しようとすると、URLごとにコンテンツスクリプトをロードします。Chromeは直接起動します。 i = 22のタブ(そしてスクリプトは1回だけ機能します):

function extraction(tab) {
for (var i =21; i<23;i++)
    {
        chrome.storage.sync.set({'extraction' : 1}, function() {}); //for my content script
        chrome.tabs.create({url: "http://example.com/"+i+".html"}, function() {});
    } 
}
chrome.browserAction.onClicked.addListener(function(tab) {extraction(tab);});

誰かが私を助けることができれば、コンテンツスクリプトとmanifest.jsonは問題ではありません。私はそれを15000回作りたいので、他の方法ではできません。

ありがとうございました。

4

2 に答える 2

0

chrome.tabs.createは非同期関数だと思うので、i変数が毎回コピーされるように別の関数を作成する必要があります:

これを試して:

var func = function(i)
{
        chrome.storage.sync.set({'extraction' : 1}, function() {}); //for my content script
        chrome.tabs.create({url: "http://example.com/"+i+".html"}, function() {});
}

function extraction(tab) {
for (var i =21; i<23;i++)
    {
      func(i);
    } 
}
chrome.browserAction.onClicked.addListener(function(tab) {extraction(tab);});
于 2012-11-04T17:17:32.310 に答える