2016-07-12 4 views
2

を実行し、私は新しいタブをロードすることができましたが、このスクリプトは、ページのロード前に実行されます。クローム拡張は、新しいタブを作成し、それがロードを完了するのを待って、スクリプト

manifest.jsonを:

{ 
    "manifest_version": 2, 
    "name": "cpClips", 
    "version": "1.0", 
    "description": "cpClips extension to download videos from streaming sites.", 
    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "background": { 
    "scripts": ["bg.js"], 
    "persistent": false 
    }, 
    "permissions": [ 
    "tabs" 
    ] 
} 

bg.js:

chrome.browserAction.onClicked.addListener(function(activeTab) 
{ 
    chrome.tabs.create({ url: 'http://127.0.0.1:8000' },function(tab) { 
     alert('hi'); 

    }); 

}); 

私はchrome.tabs.onUpdated.addListenerとともにchrome.tabs.executeScriptを使用したが、その後も、新しいタブウォン試してみました開いていない。 例が良いでしょう。タブは必ずしも必要ではないが、ページがロードされたときに作成されたときcreate

答えて

5

コールバックが発生します。 onUpdatedイベントにもリスナーを追加し、statusのコールバックに渡されたchangeInfoオブジェクトを確認する必要があります。

chrome.browserAction.onClicked.addListener(function(activeTab) 
{ 
    chrome.tabs.create({url:'http://127.0.0.1:8000'}, function(tab) { 
    }); 
}); 

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    // make sure the status is 'complete' and it's the right tab 
    if (tab.url.indexOf('127.0.0.1:8000') != -1 && changeInfo.status == 'complete') { 
     chrome.tabs.executeScript(null, { 
      code: "alert('hi');" 
     }); 
    } 
} 
関連する問題