3

Opera で UserJS の勉強を始めました。試しに、jQuery ライブラリと jQuery UI を接続してみましたが、うまくいきませんでした。コードは次のとおりです。

(function( ) {
    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    headID.appendChild(newScript);

    newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery2';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js';
    headID.appendChild(newScript);

    alert('first alert');
    window.addEventListener('load', function (e)  {
        $('body').html('test page');
    }, false);
})( );

最初の警戒作業。2 つのライブラリがページに接続されていますが、jQuery コードが機能していません。なにが問題ですか?

PS。次のエラーが表示されます: ReferenceError: Undefined variable: $

4

1 に答える 1

2

スクリプトは非同期的に読み込まれ、ページが読み込まれた時点ではおそらくまだ準備が整っていないため、$/jQuery はウィンドウ スコープにまだ存在していません。

jQuery を使用しているので、簡単に $(document).ready() または $() を使用できます。これは、ページが読み込まれた後に呼び出された場合にも機能するためです。

両方のスクリプトが利用可能になったら、jQuery の ready() を起動する単純な script.onload ハンドラーを使用したフィドルを次に示します: http://jsfiddle.net/qaYJF/

于 2012-01-14T12:41:25.987 に答える