3

私はjQueryプラグインを書きましたjquery.plugin.js. このプラグインを多数のサイトで使用したいと考えています。

私がやりたいことは、.js コードをその上部に書き込んで、.js コードをjquery.plugin.jsロードしjquery.main.jsて実行すること$ですjquery.plugin.js

ありがとう。

4

5 に答える 5

1

このページはあなたに役立つかもしれません

http://code.google.com/p/jquery-ajaxq/

このスクリプトを使用すると、ファイルを順番に使用できます

于 2012-11-16T07:17:12.227 に答える
1

おそらくやりたいことは、jsで新しいタグを作成することです

script = document.createElement('script');
script.src = 'URL-TO-JQUERY';

そして、その要素を最初のタグの前に追加します。

document.body.insertBefore(document.getElementsByTagName('script')[0], script);

これは、スクリプトが他の js の前に挿入されるため、おそらく機能します。(頭以外)

はい、jQuery が存在するかどうかを確認する間隔だけです。

interval = setInterval(check, 100);
function check(){
  if($.version){
    // Exec script
  }
}
于 2012-11-16T06:42:52.437 に答える
0

requirejs のように、必要な処理を行う AMD パッケージがいくつかありますが、最初にそれらをロードする必要があります。

ポーリング手法 (jQuery を動的にロードし、$ が存在するまでポーリングする) を使用できますが、あまりエレガントでも効率的でもありません。

また、onload イベント ハンドラーを動的 jQuery スクリプトにアタッチすることもできます。これにより、jQuery のロード後にプラグインがトリガーされます。もちろん、このようなイベント ハンドラーにはブラウザー間の互換性の問題があるため、jQuery を使用して記述する方が簡単です。

要するに、これは大変な作業であり、通常は 2 つのスクリプト タグを記述した方がよいということです。

PS: 上記のテクニックのいくつかは、この記事で説明されています: http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/

于 2012-11-16T07:15:45.430 に答える
0

jQuery が既にロードされている場合にのみ機能します。

$.when($.getScript("path_to_script")).then(function() {

   alert("loaded");
})​

フィドル - http://jsfiddle.net/fLuDd/

編集

var fileref = document.createElement('script')
fileref.setAttribute("type", "text/javascript")
fileref.setAttribute("src", 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js')
document.getElementsByTagName("head")[0].appendChild(fileref)


var t = setInterval(function() {
    if (typeof(jQuery) == 'function') {
        alert("jquery loaded");
        clearInterval(t);
    }
}, 2000);​

フィドル - http://jsfiddle.net/fLuDd/1/

于 2012-11-16T06:44:46.450 に答える
0

jquery.main.js上記のjquery.plugin.js. スクリプトタグをこの順序で配置すると機能するはずです。

<script src="jquery.main.js"></script>
<script src="jquery.plugin.js"></script>

html を完全に制御できない場合、または jQuery が他の場所からもロードされる可能性がある場合は、これを実行して、ロードされているかどうかを確認し、必要な場合にのみロードします。

グーグルから読み込む

if (typeof jQuery == 'undefined') {  
    document.write('<script type="text/javascript" src="http://www.google.com/jsapi"></script>');
    document.write('<script type="text/javascript">');
        google.load("jquery", "1.4.2");
    document.write('</script>');
}

同じサーバーからロード

if (typeof jQuery == 'undefined') {  
    document.write('<script type="text/javascript" src="path/to/jquery.min.js"></script>');
}
于 2012-11-16T06:41:57.690 に答える