1

我有一个 chrome 扩展,它引用了 jquery 文件。
这是我的弹出 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 的影响?谢谢大家:)

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

4

2 回答 2

4

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

这是因为 Chrome 严格的内容安全政策只允许执行本地脚本,没有内联代码。

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

清单版本的更改不应影响您的内容脚本,除非它们执行了不再允许的操作。您可以从 Chrome manifestVersion文档中看到还有哪些变化。

于 2012-08-05T07:19:23.833 回答
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"]
    }
  ]
}
于 2012-09-08T18:16:22.733 回答