2012-05-11 8 views
3

実行のためにいくつかのjをDOM要素に動的に挿入しようとしています。しかし、私が$(document).ready()に注射すると、スクリプトは評価されません(しかし、正しく注入されます)。また、DOMロード時に注入しようとすると、コンテナ要素はまだ存在しません。私はコンテナ内のスクリプトタグをハードコーディングしてテストしましたが、これは素晴らしいです。 jsをDOM要素に挿入し、DOMの準備ができているか、ページの読み込み中に評価する方法はありますか?DOMにJavascriptを挿入する

$(document).ready(function(){ 
    var container = document.getElementById('container_div'); 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.appendChild(document.createTextNode('[script]')); 
    container.appendChild(script); 
    //I've also tried .insertBefore and 
    //.parentNode.insertBefore and jQuery's .append() 
}); 

私は可能なことを達成しようとしていますか?純粋なJavaScriptで

+1

「script」が定義されていないため、 '[[script] ''がエラーを投げるという点を除いて、このコードは私のために働きます。 http://jsfiddle.net/T74Df/ – Yoshi

+0

スクリプトを挿入しますが、評価されることはありません。 – Joe

+0

あなたがやっていることは、 'eval'と同じことです。これは' evil'です。代わりに 'script.src = 'path/to/script.js';'を設定してスクリプトファイルを参照する方が良いでしょう。 – zzzzBov

答えて

1

var s = document.createElement('script'); 
s.setAttribute('src','js/myscript.js'); 
document.body.appendChild(s); 

これは私が放火魔でそれをハックすることができますが、それは任意のスクリプトで動作する必要がありますので、私は、任意のページに「輸入」jqueryのためにそれを使うjQuerifyからです。

関連する問題