0

Chrome拡張機能にjQueryをインポートしようとしましたが、

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>

それはそれがRefused to load the script 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js' because it violates the following Content Security Policy directive: "script-src 'self' chrome-extension-resource:".何を意味するのか、そしてもっと重要なことに、私はそれについてどうやって行くのだろうと言っていますか?

4

4 に答える 4

1

私がmanifest.jsonを介してjQueryをロードするときに私のために働きます:

{
...
  "background": {
    "scripts": ["jquery.min.js", "background.js"]
  },
...
}
于 2012-11-06T09:31:39.673 に答える
1

これを克服するには、デフォルトのCSPをオーバーライドするか、ローカルリソースからJSファイルをインポートする必要があります。CSPのオーバーライドが機能しない場合があります(HTTPは許可されていません)。したがって、JSファイルは常にローカルからインポートすることをお勧めします。Chrome拡張機能には、外部JSを使用しないためのセキュリティガイドラインがいくつかあります。

jQueryプラグインをローカルに保存して、htmlページにインポートしてみてください。たとえば、jQueryプラグインを「jquery_local_file.js」としてローカルに保存したとします。

<html>
<head>
    <script src="jquery_local_file.js"></script>
</head>
<body>
    //body code here
</body>
</html>

(また)

マニフェスト.json

"content_security_polciy:"srcipt-src 'self' https://ajax.googleapis.com, object-src 'self'";

それは間違いなく機能します。:)

于 2014-12-17T08:48:39.823 に答える
0

セキュリティ上の理由-拡張機能は、通常のサンドボックス化されたWebページよりもはるかに多くのことを実行できます。そのため、インターネット経由でロードするバージョン、特にHTTP(vs HTTPS)経由でロードするバージョンではなく、拡張機能とともにパッケージ化したバージョンのjQueryを使用する必要があります。

于 2012-11-03T14:28:55.173 に答える
0

セキュリティ上の理由から、GoogleChrome拡張機能内の外部JavaScriptファイルを参照することはできません。この問題を解決するには、jQueryライブラリを拡張機能に埋め込んでから、background.htmlページで参照する必要があります。何かのようなもの :

<html>
  <head>
    <script src='jquery.min.js'></script>
    <!-- ... -->
  </head>
  <body>
    <!-- ... -->
  </body>
</html>
于 2012-11-03T14:29:07.430 に答える