2012-01-14 19 views
3

OperaでUserJSを勉強し始めました。テストするために、jQueryライブラリとjQuery UIを接続しようとしましたが、動作しませんでした。コードは次のとおりです。jQuery in Opera userJS

(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:未定義の変数:$

答えて

2

スクリプトが非同期で読み込まれ、ページが読み込まれたときに準備が整っていない可能性があります。したがって、$/jQueryはまだウィンドウスコープに存在しません。

jQueryを使用しているので、ページが読み込まれた後に呼び出されたときにも機能するので、$(document).ready()または$()を簡単に使用できます。 http://jsfiddle.net/qaYJF/

+0

は、私はこれを試してみましたが、それはうまくいきませんでした。ここで

は、両方のスクリプトが用意されていたら、jQueryの)(準備を発射シンプルscript.onloadハンドラとフィドルです。このオプションは確実に機能しますか? – Anton

+0

私はOperaエクステンションを書いています。これはあなたの方法で拡張されたもので、動作しませんでした:http://dl.dropbox.com/u/30086473/HabraCorrector.oex – Anton

+0

どうか問題を教えてください。 – Anton