【发布时间】:2014-08-27 08:08:52
【问题描述】:
我是 chrome 扩展开发的新手。
问题不在于访问 chrome:// url 我不想在那里编辑任何内容,但问题在于用于注入脚本的 chrome.tabs.executeScript() 的执行。
我正在尝试使用 chrome .tabs.executeScript 运行后台脚本,但它给出了以下错误:
运行 tabs.executeScript 时未检查 runtime.lastError:无法访问 chrome:// URL
我有以下代码:
清单
{
"name": "BrowserExtension",
"version": "0.0.1",
"manifest_version": 2,
"description" : "Description ...",
"icons": { "16": "icons/16x16.png", "48": "icons/48x48.png", "128": "icons/128x128.png" },
"background" : {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"background",
"http://*/*",
"https://*/*"
],
"browser_action": {
"default_icon": {
"19": "icons/19x19.png",
"38": "icons/38x38.png"
},
"default_title": "That's the tool tip"
}
}
Background.js
console.log("background.js : click()");
chrome.tabs.executeScript(null, {file: "jquery.min.js"}, function(){
chrome.tabs.executeScript(null, {file: "auto.js"}, function(){
chrome.tabs.executeScript(null, {file: "script.js"}, function(){
//all injected
});
});
});
script.js
$(function()
{
var input = $('input');
$.each(input,function(index,element){
var area = new AutoSuggestControl(element.id);
});
var ta = $('textarea');
$.each(ta,function(index,element){ var area = new AutoSuggestControl(element.id);});
return 1;
});
auto.js 是一个预编译的 js 文件,在 html 文件中单独使用时可以正常工作。扩展的目的是在文本字段中写入时提供自动完成功能。非常感谢您的帮助。
【问题讨论】:
-
chrome.tabs.executeScript不运行后台脚本,而是运行content script。您的代码在以解压模式加载时会尝试在chrome://extensions/上运行,因为那是最后一个活动选项卡。如果您没有询问为什么无法访问chrome://-URLs,请编辑问题和标题,并更准确地说明您尝试过的内容,您的预期,但发生了什么,我将重新打开这个问题。
标签: javascript jquery google-chrome google-chrome-extension