如何在Google Chrome Extension中新创建的标签上使用executeScript执行脚本?

时间:2013-11-20 16:00:31

标签: javascript google-chrome-extension tabs

我正在尝试创建一个新标签,然后在其中执行一个简单的代码(即警报)。
我正在使用executeScript方法进行此programmatic Injection操作。
选项卡已成功创建,但不显示警报!

的manifest.json

{
    "name" : "TabCreatorAlerter",
    "description" : "Opens a tab and shows an alert in it !",
    "version" : "1.0",
    "manifest_version" : 2,
    "background" : {
        "scripts" : ["background.js"],
        "persistent" : false
    },
    "permissions" : ["tabs"]
}

background.js

chrome.tabs.create(
    {url:"http://www.google.com"},
    function(createdTab) {
        chrome.tabs.executeScript(
            createdTab.id, 
            {code:"alert('hi');"} 
        );
    }
);

这段代码有什么问题?以及如何解决它?

1 个答案:

答案 0 :(得分:1)

您必须将*://www.google.com/*权限添加到清单文件中。

如果您查看background page's console,就会看到错误。或者,在chrome.runtime.lastError的回调中查看chrome.tabs.executeScript

chrome.tabs.create(
    {url:"http://www.google.com"},
    function(createdTab) {
        chrome.tabs.executeScript(
            createdTab.id, 
            {code:"alert('hi');"},
            function() {
                if (chrome.runtime.lastError) {
                    alert(chrome.runtime.lastError.message);
                }
            }
        );
    }
);