Javascript Chrome扩展未加载jquery
我尝试将jQuery导入我的Chrome扩展,但是当我尝试Javascript Chrome扩展未加载jquery,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我尝试将jQuery导入我的Chrome扩展,但是当我尝试 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script> 它说它拒绝加载脚本的http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js因为它违反了以下内容安全策略指令:“scr
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
它说它
拒绝加载脚本的http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js因为它违反了以下内容安全策略指令:“script src‘self’chrome extension resource:”。
这意味着什么,更重要的是,我该怎么做呢?出于安全原因--扩展可以做的比普通的沙盒网页多得多。出于这个原因,您可能必须使用扩展名附带的jQuery版本,而不是通过internet加载的版本,尤其是通过HTTP(vs HTTPS)加载的版本。出于安全原因,您不能在Google Chrome扩展名中引用外部JavaScript文件。为了解决您的问题,您必须将jQuery库嵌入到扩展中,然后在background.html页面中引用它。比如:
<html>
<head>
<script src='jquery.min.js'></script>
<!-- ... -->
</head>
<body>
<!-- ... -->
</body>
</html>
在我通过manifest.json加载jQuery时对我有效:
{
...
"background": {
"scripts": ["jquery.min.js", "background.js"]
},
...
}
要克服这个问题,您必须或者必须从本地资源导入JS文件。有时覆盖CSP可能不起作用(不允许HTTP)。因此,我建议您始终从本地导入JS文件。Chrome扩展有一些不使用外部JS的安全准则 只需将jQuery插件保存到本地,然后尝试在html页面中导入。例如,假设您已将jQuery插件保存为本地文件中的“jQuery\u local\u file.js”
<html>
<head>
<script src="jquery_local_file.js"></script>
</head>
<body>
//body code here
</body>
</html>
//这里是身体代码
(或)
manifest.json
“内容安全”政策:“srcipt src'self”https://ajax.googleapis.com,对象src'self';
它确实有效。:)查看我两天前的发言。错误。如果你愿意,你可以这样做。如果你纠正了那句话(以及推翻CSP的限制),我很乐意推翻投票结果你是对的。但在某些情况下,覆盖CSP不起作用。在我的情况下,我遇到了这个问题。因此,我建议使用这种方法。你确实这样做了,但你的回答包含一个错误的陈述:“你不能直接在Chrome扩展名中导入外部文件。“它还复制了fsenart的现有答案。为了使您的答案有用,您可以解释或至少提及CSP可以被覆盖。同意您的看法。我用有用的答案改变了它。