0

script本文にタグがある場合、頭に追加したいのです<script>が、次のように試してみましたが、うまくいきません。どうすればできますか?

デモ: http://jsfiddle.net/rYXJx/

JS:

var TAREA = $('body').find('textarea').length;

if(TAREA > 0){ 
    $('head').append('<script type="text/javascript" src="files/js/nicEdit.js"></script><script type="text/javascript">bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });</script>');
    };
4

2 に答える 2

4

jquery getScript 関数を使用できます。

http://api.jquery.com/jQuery.getScript/

したがって、正しいコードは次のようになります。

 $.getScript('files/js/niceEdit.js');
于 2012-12-11T18:14:11.087 に答える
2

スクリプトの問題の1つは</script>、文字列リテラルの内側が実際に外側の<script>タグを壊してしまうことです。あなたはどこからともなく出てきているように見えるあなたのページのこれらの文字に気付くかもしれません:

');};

次に、ヘッドにタグを挿入することは可能ですが<script>、スクリプトの読み込みがいつ終了したかを直接/簡単/クロスブラウザで知る方法はありません。また、完全にロードされる前にスクリプトを使用することはできません。

最善の解決策はjQuery.getScript()、コールバックを提供するを使用することです。コールバックを使用してnicEditors.allTextAreas()関数を呼び出します。

$(document).ready(function () {
    if ($("textarea").length > 0) {
        $.getScript("files/js/nicEdit.js", function () {
            // no need for onDomLoaded -- DOM is loaded at this point!
            nicEditors.allTextAreas();
        });
    }
});
于 2012-12-11T18:23:38.920 に答える