5

jQuerify は、現在表示されている Web ページに jquery サポートを追加するための小さなブックマークレットです。このページを見てみましょう: http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/

このデモは、jquery が既にダウンロードされているかどうかを知らせ、ダウンロードしていない場合はロードしてから、アクティブなバージョンを表示します。私の問題は、Facebook、GoogleなどのGoogle Chromeでブラウジングすると、一部のページに何も表示されないことです(キャッシュされたページではなく、ページの結果)IEを使用すると、これらのページで動作します。

Chrome でユーザーの Google セッションを切断しようとしましたが、まだ問題があります。https urlが原因だと思いました。しかし、「すべてのコンテンツを表示する」を確認した後、IEでは問題なく表示されます。

Chrome の設定が間違っている可能性がありますか? jQuerifyの修正はありますか、それともあきらめて、jqueryとリモートスクリプトをロードする別の解決策を見つける必要がありますか?

アドバイスをありがとう。

4

1 に答える 1

9

Google Chrome では、ブラウザのコンソールにエラー メッセージが表示されます。

次のコンテンツ セキュリティ ポリシー ディレクティブに違反しているため、スクリプト 'http://code.jquery.com/jquery.min.js' の読み込みを拒否しました: "script-src https:// .facebook.com http:/ / .facebook.com https:// .fbcdn.net http:// .fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net .google.com 127.0.0.1: *.spotilocal. com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https:// .akamaihd.net http:// .akamaihd.net".

これは、Facebook が HTTP ヘッダー "X-WebKit-CSP" で実装されるセキュリティ機能を実装したためです。

これが、Facebook での現在の実装が、Webkit ベースのブラウザー (Chrome および Safari) での外部スクリプトのロードに影響を与える理由です 。jQuerify ブックマークレットは、Firefox および IE で正常に動作します。

Chrome のソリューション、次のアプローチで実行できます。

  • 上記の詳細でわかるように、127.0.0.1:* がサポートされています。システムで単純な Web ホストを実行するだけです (例: Apache Web サーバー)。jquery javascript ファイルをシステムの Apache リンク ディレクトリにコピーします。これで、このファイルは次のようなパスでアクセスできるようになりますhttp://127.0.0.1/jquery.js(注: ここでは使用しないhttp://localhost/でください)。jQuerify ブックマークレットで、jQuery ファイルのパスを から に変更しhttp://code.jquery.com/jquery.min.jsますhttp://localhost/jquery.js。これで、ブックマークレットは正常に機能します。

       また

  • jQuery コード全体をブックマークレットにロードして、外部スクリプト ファイルをロードしないようにします。jQueryファイルを介したデバッグにも使用したい場合、これは最初のアプローチほど役に立たないため、お勧めしません。
于 2013-01-01T09:10:19.220 に答える