chrome.tabs.executeScript:无法访问chrome:// URL

我对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:// url因安全原因被阻止。 Google不希望您在用户不知情的情况下更改外观或更改Chrome设置。 加载扩展程序时,它会立即在chrome:// extensions页面中执行这些文件。 如果要在用户访问的每个选项卡中执行脚本,则应使用:

 chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { //code in here will run every time a user goes onto a new tab, so you can insert your scripts into every new tab });