chrome扩展 - 清单版本2

时间:2012-08-05 05:45:11

标签: google-chrome-extension

我有一个chrome扩展名,它引用了jquery文件 这是我的popup html(只有head标签):

<head>
    <title>My Extention</title>
    <script type="text/javascript" src="http://www.MySite.com/Resources/JS/JQuery/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="MyExtensionScript.js"></script>
</head>

所以在“MyExtensionScript.js”中我认为我可以使用jquery但显然没有定义$函数。
这是我的manifest.json文件:

{
  "name": "My Test Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Test version of My Extension",
  "browser_action": {
    "default_icon": "test.ico",
    "default_popup": "Test.html"
  },
  "permissions": [
    "cookies",
    "tabs",
    "<all_urls>"
  ]
}

在它工作的清单的第1版中,但现在却没有。我试图使用“web_accessible_resources”并将它们添加到“http://www.MySite.com/Resources/JS/JQuery/jquery-1.7.2.min.js”,但这也不起作用。任何想法?
另外,我有一个脚本注入当前页面并返回一条消息(在我的情况下是当前页面的一些html源),这种行为是否会受到转换到清单版本2的影响? 谢谢大家:)

编辑:我有一个支持跨域脚本编写的Web应用程序(使用JSONP)。在我的扩展中,我有一个脚本使用$ .getJSON在我的站点中调用Web服务。现在它不起作用。我很确定它与新的清单版本有关,但我如何再次启用跨域脚本?

2 个答案:

答案 0 :(得分:4)

您需要使用本地存储在您的扩展程序中的jQuery文件,而不是从您的网站引用。

这是由于Chrome的严格Content Security Policy仅允许执行本地脚本,没有内联代码。

Web Accessible Resources是您的扩展程序中的文件,可以从网络访问,而不是您的扩展程序可以访问网络上的资源。例如,如果您想使用扩展程序中存储的图像更改页面的背景图像,则必须将该图像添加到清单中web_accessible_resouces的列表中。

清单版本的更改不应影响您的内容脚本,除非它们执行不再允许的操作。您可以在Chrome manifestVersion文档中查看其他更改内容。

答案 1 :(得分:1)

我只是在我的内容脚本中包含jquery。只需确保在脚本之前加载它。

{
  "manifest_version": 2,
  "default_title": "Babble",
  "version": "1.2",
  "description": "Chat in your language with friends in their language",
  "default_locale": "en",
  "default_icons": {
    "16": "img/icon16.png",
    "48": "img/icon48.png",
    "128": "img/icon128.png"
  },

  "content_scripts":[
    {
        "matches": ["http://mail.google.com/*", "https://mail.google.com/*"],
        "css" : ["css/style.css"],
        "js" : ["js/jquery.js" , "js/translate.js" , "js/jquery.cookie.js"]
    }
  ]
}