Chrome扩展程序中的jQuery - 拒绝内联脚本尽管包含正确

时间:2016-06-12 11:54:30

标签: javascript jquery google-chrome-extension

我试图在我的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中。

1 个答案:

答案 0 :(得分:1)

错误来自

$.getScript('firebase.js', function() { ...

jQuery&#39; getScript将获取文件中的代码,然后创建一个<script>元素,其代码为文本。这将是内容安全策略禁止的内联脚本。

如果您想在background.js代码之前添加一个文件,只需输入:

即可
"scripts": ["firebase.js", "background.js"],
你的manifest.json中的