Chrome扩展程序:创建一个新标签页,等待它完成加载,执行脚本

时间:2016-07-12 20:48:31

标签: google-chrome-extension

我已经能够加载一个新选项卡,但脚本在页面加载之前执行。

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.executeScriptchrome.tabs.onUpdated.addListener,但即使新标签也无法打开。

一个例子很好。

1 个答案:

答案 0 :(得分:7)

创建选项卡时发生create的回调,但加载页面时不一定。您还需要为onUpdated事件添加一个侦听器,并查看传递给它changeInfo的回调的status对象。

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');" 
        });
    }
});