我正在尝试创建一个新标签,然后在其中执行一个简单的代码(即警报)。
我正在使用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');"}
);
}
);
这段代码有什么问题?以及如何解决它?
答案 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);
}
}
);
}
);