1

作業中のDrupalプロジェクトの一部として、外部のjavascriptファイルを含める必要があります。残念ながら、この外部ファイルはクロージャを正しく使用していません。次に例を示します。

(function($) {
    function test() {...}
})(jQuery);
function test2() {
    console.log($('#xyz').val());
}

test2()が実行されるたびに、「$isundefined」エラーが発生します。

Drupalがクロージャを賢明に使用してライブラリの調和のとれた共存を可能にすることは知っていますが、これは非常に便利ですが、この場合、チームに外部JSファイルの責任を負わせて必要な変更を加えることは悪夢です(そして責任のある「専門家」に説明しようとすることを含む)。

この外部ファイルにjQueryへのポインターとして$を使用するためのアクセス権を与える方法はありますか?理想的には、私の最後に大きな回避策を必要としないが、それでも外部バージョンを利用できるソリューションが必要です。

それができない場合は、ローカルコピーを取得し、それに応じて修正します。

ありがとう!

4

2 に答える 2

3

グローバルを割り当てるだけです。

window.$ = jQuery
于 2012-08-06T14:53:39.803 に答える
1

コピーを取り、それに合わせて変更するか、PHPを使用してファイルを取得して出力する必要があります。たとえば、javascript srcがローカルのphpファイルを指している場合、そのphpファイルで次のようなことができます。

$js = file_get_contents("externaljsfile");

echo ";(function($) {";

echo $js;

echo "})(jQuery);";

私が聞いた方法は、おそらく機能する可能性のあるインポートされたjavascript(javascriptマクロ?)を使用する方法ですが、(存在する場合でも)それらを読んだことがなく、十分なブラウザーでサポートされていません。とにかく実行可能なソリューション

于 2012-08-06T14:55:48.947 に答える