2011-01-14 12 views
0

私は、DIVにスクリプトタグを追加するjQueryのを使用して例:jqueryの負荷スクリプトの競合

$("#special_div").append("<script src="http://blablabla.com/id.php?id=0000"></script>"); 

とそのスクリプトが返されています:

document.write("<object ....></object>"); 

が、ときに私はそれを追加し、すべての私のHTMLはなくなって、そのタグだけが書かれ​​ています。

誰かが間違っていることを教えてもらえますか?

答えて

0

document.write() —を使用しているか、少なくともそのスクリプトの作成者がそれを使用しています。それはの後にの後にdocument.write()が実行すると、実際のオリジナルのドキュメントがブラウザによって構築されています。私はあなたのコードは、いくつかのjQueryの初期化ブロックであると仮定します

$(function() { 

    // your code somewhere in here ... 

}); 

したがって、それはブラウザがすべての準備ができてページを得ているときにのみ実行されます。しかしその時点で、document.write()への新しい呼び出しは、に完全にに新しいものを置き換えることを意味すると解釈されます。

試してみることの1つは、を文書に入れ(document.write()ではない!!)、その中に<script>タグを入れておくことです。

1
は、最初にすべてのあなたの引用符をエスケープ

$("#special_div") 
    .append("<script src=\"http://blablabla.com/id.php?id=0000\"></script>"); 

はさらにdocument.writeを、それが呼び出されたときに応じて結構です。

編集:他のテキストを削除し、のdocument.writeについて他の回答には、この上で私を啓発:Dおかげ@Ivo

0

あなたの負荷がdocument.writeを使用しますが、ページが既にされた後、スクリプトをロードしているスクリプトしたがって、document.writeはページの内容を上書きします。 document.writeの使用に対して、より上の理由から

は、以下を参照してください。
Why is document.write considered a "bad practice"?

はそれを修正するには、HTMLソース自体にスクリプトを含める必要があります。

0

はobejctタグに

1

Hereを追加するのdocument.writeが、は、appendChildを使用していない説明です:ページの読み込みが終了した後に実行

任意のdocument.write文は、新しいページを作成します。現在のページのすべてのコンテンツを上書きする

関連する問題