我有一个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服务。现在它不起作用。我很确定它与新的清单版本有关,但我如何再次启用跨域脚本?
答案 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"]
}
]
}