【问题标题】:Chrome Content Scripts not loading JSChrome 内容脚本未加载 JS
【发布时间】:2012-05-01 19:38:25
【问题描述】:

我正在尝试开发一个 Chrome 浏览器扩展程序,它可以在上下文菜单上做一些有趣的事情。问题是,我无法在 manifest.json content_scripts 中加载 JS 文件。

我没有收到错误,文件根本没有加载。

脚本很好,如果我将它们放在我的背景页面中,它们会通过该背景页面很好地触发。缺点是它仅限于背景页面。

{
"name": "Mini",
"description": "Mini",      
"permissions": ["contextMenus","management","contentSettings","tabs","http://*/*","https://*/*","editable"],
"version": "0.1",
"manifest_version": 1,
"background_page": "mini.html",
"icons" : {"16" : "mini.png"},
"contexts" : ["link","tab","page"],
"content_scripts": [{"matches":["<all_urls>"],"js":["jquery172min.js","mini.js"]}]
}

我尝试了所有形式的匹配,包括"http://\*/\*", "https://\*/\*", "\*://\*/\*"

我试过空格,没有空格。我在这里画一个空白。

任何帮助将不胜感激。

$(document).ready(function () {

alert("page is ready");
},true);    

对此我深表歉意。这是我用来测试扩展是否已加载的 javascript/Jquery 的副本。这只是一个简单的警报。

【问题讨论】:

    标签: google-chrome-extension content-script


    【解决方案1】:

    Content scripts不能使用chrome.contextMenus API(实际上这些只能使用some of the chrome.extension methods)。

    可以通过chrome.contextMenus.create({title: 'Test', documentUrlPatterns: 'http://*/*'});match patterns 应用于各个菜单项。
    创建的菜单项也可以修改 (chrome.contextMenus.update) 和删除 (chrome.contextMenus.remove)。

    要在内容脚本和后台页面之间进行通信,请参阅Message passing

    【讨论】:

    • 谢谢!现在的问题是我什至无法测试那部分。即使我应该放置一个在页面加载时触发的简单警报(通过 jquery)它不会触发。当我查看开发人员面板时,没有为该扩展加载任何脚本。
    • 哪些开发工具?内容脚本是不可见的,只能从后台页面的开发工具间接访问。内容脚本的console.log 消息显示在它处于活动状态的页面中。
    • 好吧,我说的是 Chrome 自带的开发者工具。因此,我不会将其视为已加载。但是,我应该看不到警报触发器吗?我会查看console.log。我不知道那个。谢谢
    • @MichaelLockwood 我不是读心术。你在说哪个alert?请在您的问题中包含相关详细信息(使用edit 链接编辑答案)。
    • 我很抱歉 Rob。我正在尝试提供尽可能多的信息。但是,我对此感到困惑。将文件添加到 Manifest.json 中的 content_scripts 应将这些脚本加载到包含所有选项卡的范围内。对吗?
    猜你喜欢
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2014-11-01
    • 2011-11-25
    • 2012-09-03
    • 1970-01-01
    • 2014-01-18
    • 2011-10-31
    相关资源
    最近更新 更多