2011-07-11 14 views
1

jQuery用とjQuery用の2つのスクリプトタグを動的に追加するブックマークレットを作成しようとしています。私が抱えている問題は、jQueryスクリプトを最初に追加しても、ブラウザがjQueryが定義されていないと言うので、jsスクリプトを読むことができないということです。 jsスクリプトを実行しているときにブラウザがjsスクリプト内のjQueryを認識しないため、ブラウザがjsスクリプトを追加したときにjQueryがロードされているというエラーが表示されます。 jQueryが完全に読み込まれるまで、jsスクリプトタグの追加を遅らせるにはどうしたらいいですか?jQueryが適切にロードされるまで、javascriptのロードを遅らせる

ありがとうございます!

答えて

2

あなたのスクリプトはどのように見えますか?

スクリプトで行うことをすべて関数内にカプセル化し、関数から呼び出す必要があります。 jQueryのは、完全にロードした後にのみ実行するようにコードを作る

$(document).ready(function(){ 
    myJqueryFunction(); 
}); 

:例えば

はでそれを呼び出し、関数myJqueryFunction()にすべてをかけます。

また、Ajaxを使用してスクリプトを実行できるはずですが、スクリプトはドキュメントと同じドメインから提供する必要があります。そうでなければDOMにアクセスできません。

$(document).ready(function(){ 
    $.ajax("url to your script", {dataType:"script"}); 
}); 
+0

ドメイン間の問題が原因でajaxを使用できません。また、私のスクリプト内のjQuery関数が正しく読み込まれていないので、jQueryの読み込みが完了する前にスクリプトがロードされているという問題があるため、$(document).readyが機能しないと思われます。 – Andrew

+0

関数内のコードです関数が実行されるまで解析されず、何らかの形で$(document).ready()が常に動作するように見えますが、最後に置くことをお勧めします。あなたはどこかに公開されたページを持っていますか?その場合、私は一見することができます。 –

1

ほとんどのJavascriptのプログラマーがやって終わる最初のものは、これに似たその>プログラムにいくつかのコードを追加している:その内部

window.onload = function(){ alert("welcome"); }

あなたが権利を実行するコードですページがロードされたとき。ただし、すべての画像のダウンロードが完了するまで、Javascriptコードは実行されません(これにはバナー広告が含まれます)。最初にwindow.onloadを使用する理由は、最初にコードを実行しようとすると、HTML 'document'がまだ読み込まれていないからです。

この情報が役立ちます。JQuery tutorialから抽出してください。

+1

いいえ.ready()メソッドは、一般的に属性と互換性がありません。 http://api.jquery.com/readyから取得しました。 – stefgosselin

+2

あなたの新しいアカウントであなたを奨励するために、とにかくアップアップされましたが、あなたが長い時間のユーザーだった場合は、ダウン投票されました。 – stefgosselin

0

LABjshttp://labjs.com/のようなスクリプトローダーを使用できます。 waitを使用して他のスクリプトを延期することをサポートしています。

$LAB 
.script("jquery.js") 
.wait() 
.script("script.js"); 
関連する問題