JsonPを使用してJQueryのスクリプトを挿入しても安全ですか?
私の Web アプリケーションのインストールは、顧客の Web サイト (Google アナリティクスなど) にスクリプトを追加することです。顧客の Web サイトで、自分の挿入スクリプトの一部として JQuery を使用することを考えていました。
なんらかのリスクがあるかどうか疑問に思っていましたか?アプリケーションは、あらゆる種類の Web サイトをサポートする必要があります。
やろんさんありがとうございます
JsonPを使用してJQueryのスクリプトを挿入しても安全ですか?
私の Web アプリケーションのインストールは、顧客の Web サイト (Google アナリティクスなど) にスクリプトを追加することです。顧客の Web サイトで、自分の挿入スクリプトの一部として JQuery を使用することを考えていました。
なんらかのリスクがあるかどうか疑問に思っていましたか?アプリケーションは、あらゆる種類の Web サイトをサポートする必要があります。
やろんさんありがとうございます
ライブラリで何をしているのかわかりにくいですが、複数のサイトで使用するためのある種のウィジェットを作成しているようです。
ここからは、@K Prime からの有益なコメントにより、必要に応じて jQuery の 2 つのコピーを含める方法を正確に調査した後、更新されました。
管理外のサイトに配置され、「この埋め込みコードをコピーしてサイトに貼り付ける」タイプの機能を使用してサイトに追加されるウィジェットを作成する場合、jQuery を使用するのは一般的に不適切です。(もちろん、jQuery ウィジェットとプラグインはたくさんありますが、これらは通常、一般的な「コピー アンド ペースト」ウィジェット タイプの実装ではなく、開発者によって選択され、インストール/実装されます)
おそらく最大の理由は (同じページで jQuery の 2 つのコピーを実行できることに気付いた後)、ファイル サイズの増加です。保証されるかどうかは、特定のニーズと機能によって異なります。シンプルな小さなウィジェット = ストレート JS。複雑な Web サイトのフロントエンド拡張機能の場合、おそらくファイル サイズを大きくする価値があります。
適切に含めるには (サイトで競合が発生しないようにするため)、次のようなワークフローに従います。
var mywidget_jQuery = $.noConflict( true );
の元の意味を復元し、 の元の意味を復元する実行$
しますwindow.jQuery
。JS
(function($){
... Your code here ...
})(mywidget_jQuery);
これで、特別な関数内で安全に使用でき、必要$
なすべての jQuery 機能を問題なく使用できます。
余分なクレジットステップ 1 と 2 を if ステートメントでラップして、window.jQuery
が定義されているかどうかをテストし、定義されている場合jQuery.fn.version
は、コードを実行するのに十分な高さであるかどうかをテストできます。いずれかのテストが失敗した場合は、手順 1 と 2 を実行します。ただし、成功した場合は、実行var mywidget_jQuery = window.jQuery
するだけで、手順 3 に含めたスクリプトが引き続き実行されます。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js" />
要素を追加するだけで、jQuery を Web サイトに追加できます。
ただし、別のキーワードjQuery.noConflict()
を使用する場合に備えて、必ず呼び出してください。$
ライブラリへの参照が必要な場合は、 Google Codeでホストされている API にリンクしないのはなぜですか?