2011-12-15 6 views
1

私はかなりの間この問題に取り組んできました。IE7と8のHTML読み込みにスクリプトタグを動的に追加しました

基本的に私はページにHTMLを読み込んでいますが、読み込まれたHTMLにはその中の特定の位置に外部スクリプトが含まれている必要があります。

$('#blah').load('blah.htm', 
    function(){ 
     var script = document.createElement('script'); 
     script.type = 'text/javascript'; 
     script.src = "[external script url + query string here]"; 
     $('#blah_blah')[0].appendChild(script);     
}); 

編集:私は、次のコードを使用していたこれを行うための最善の方法を見つけた私は「のappendChild」の代わりを使用してい 理由はjQueryの「追加」$ .appendにより作成するVideoPlayerを追加するということですスクリプトは完全に間違った要素になります。 appendChildを使用すると、指定された正しい要素に追加されます。私はこの答えの中に概説され、これは多分、jQueryの挿入方法をどうすると思う: Can't append <script> element

私はFirefoxとChromeでの素晴らしい作品を使用していますが、IE7 & 8に、私はにできませんエラーメッセージ」を取得コードプロパティ 'appendChild'の値を取得:オブジェクトがnullまたは未定義です "、DOM内でscriptタグを見ることはできません。

私が含まれている場合はライン:

$("#blah_blah")[0].appendChild(document.createTextNode("test")); 

テキストノード「テスト」がDOMに追加され、ページ上で見ることができます - それは「のappendChildは」仕事をしているようだが、そこにありますスクリプトタグを追加すると問題が発生します。

IE固有のセキュリティ問題である可能性がありますか?

+0

スクリプトは、特定の位置にする必要がないのはなぜ? – FishBasketGordo

+0

追加を試す http://stackoverflow.com/questions/610995/jquery-cant-append-script-element – Alfabravo

+0

No repro。それは私のために働いています... http://jsfiddle.net/QKM2D/ –

答えて

2

の何が問題なのです:

$.getScript("script.js"); 
+0

このスクリプトはサードパーティのビデオサービス用ですので、どこに行くのかを正確に指定する必要があります。もしHTMLの中のいくつかのスクリプトタグの中で$ .getScriptを使う必要があるならば、それは完全に間違った場所に終わるでしょう。私は、jQueryが外部スクリプトを処理して評価する方法と関係があると考えています。これは関連する問題のようです:http://www.bennadel.com/blog/1605-jQuery-AJAX-Strips-Script-Tags-And-Inserts-Them-After-Parent-Most-Elements.htm – Jez

+0

多分あなた一度ロードすると必要な場所に移動できますか? – shaun5

+0

私は最初から適切な場所に置いておきたいと思っていますが、それはオプションだと思います。 – Jez

関連する問題