首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chrome.tabs.executeScript:无法访问chrome:// URL

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

Stack Overflow用户
提问于 2014-07-06 21:31:29
回答 1查看 45.9K关注 0票数 27

我对chrome扩展开发非常陌生。

问题不在于访问chrome:// url,我不想在那里编辑任何内容,但问题是用于注入脚本的chrome.tabs.executeScript()的执行。

我试图使用chrome .tabs.executeScript运行一个后台脚本,但是它会产生以下错误:

运行runtime.lastError :时未选中的tabs.executeScript:无法访问chrome:// URL

我有以下代码:

流形

代码语言:javascript
复制
{
    "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

代码语言:javascript
复制
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

代码语言:javascript
复制
$(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文件中使用时,它可以很好地工作。扩展的目的是在文本字段中编写时提供自动完成。非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-07 09:07:09

chrome:// urls出于安全原因被阻止。谷歌不希望你在用户不知情的情况下改变外观或改变铬的设置。加载扩展名时,它会立即在chrome:// extension页面中执行这些文件。如果您想在用户转到的每个选项卡中执行您的脚本,您应该使用:

代码语言:javascript
复制
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
}); 
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24600495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档