我试图在我的Chrome扩展程序中实现jQuery,以便将firebase.js包含在我的background.js中(这似乎已经很奇怪了),但chrome拒绝从jquery.js中执行代码。< / p>
background.js
$.getScript('firebase.js', function()
{
// code depending on firebase.js, jquery is just needed here to include firebase.js
});
popup.html
<html>
<head>
<script src="jquery-3.0.0.min.js"></script>
<script src="firebase.js"></script>
<script src="popup.js"></script>
<script src="background.js"></script>
</head>
<body>
//stuff happens
</body>
</html>
的manifest.json
"content_scripts":[
{
"js":["jquery-3.0.0.min.js"],
"all_frames":true
}
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
所以对我来说,看起来它被正确包含,但是我得到了这个,这非常奇怪,因为它在jquery库中:
jquery-3.0.0.min.js:2拒绝执行内联脚本,因为它违反了以下内容安全策略
还有另一种方法可以解决如何在background.js中包含Firebase.js的问题吗?它没有任何意义,它不在那里工作,它包含在我的popup.html中。
答案 0 :(得分:1)
错误来自
$.getScript('firebase.js', function() { ...
jQuery&#39; getScript
将获取文件中的代码,然后创建一个<script>
元素,其代码为文本。这将是内容安全策略禁止的内联脚本。
如果您想在background.js
代码之前添加一个文件,只需输入:
"scripts": ["firebase.js", "background.js"],
你的manifest.json中的。