2012-11-14 8 views
5

私はJavascriptを使って追加のカスタムJavaScriptを生成し、それをHEADタグに追加しています。以下のコードはjavascriptファイルを追加するのに効果的ですが、スクリプトが変数に生成されている場合はどうなりますか?ファイルではなく文字列からheadタグに動的なjavascriptを追加するにはどうすればよいですか?

var scriptTag = document.createElement("script"); 
scriptTag.setAttribute("type", "text/javascript"); 
scriptTag.setAttribute("src", "myfile.js"); 
document.getElementsByTagName("head")[0].appendChild(scriptTag); 

ありがとうございました。

+1

私はあなたがjqueryの中に同じことをしたい場合には、簡単な例を書きましたか?文字列としてのソースコードですか? –

答えて

3
// script text 
var txt = "alert('foo');"; 

var scriptTag = document.createElement("script"); 
scriptTag.setAttribute("type", "text/javascript"); 

    // append it in a text node 
scriptTag.appendChild(document.createTextNode(txt)); 
document.getElementsByTagName("head")[0].appendChild(scriptTag); 

FWIW、あなたはこのためにスクリプトタグは必要ありません。代わりにFunctionコンストラクタを使用できます。

var txt = "alert('foo');"; 

Function(txt)(); 
+0

それはそれを得ました! TY –

+0

@VincentJames:どうぞよろしくお願いいたします。 –

+1

+1 for createTextNode –

3
var scriptTag = document.createElement("script"); 
scriptTag.setAttribute("type", "text/javascript"); 

scriptTag.innerHTML = "What you want here";///.... 

document.getElementsByTagName("head")[0].appendChild(scriptTag); 

Live DEMO

+0

ありがとうゴードン、私はそれを行うとき、私は機能が見つかりません。 Chromeで要素を調べると、HEADに新しいSCRIPTタグが表示されますが、常に空で、.innerHTMLに割り当てられている文字列には値があります。 –

+1

@VincentJames:あなたは追加されている '' src "'属性を取り除きたいでしょう。 –

+0

@VincentJames。デモをご覧ください。 – gdoron

0

両方の回答は特に@gdoronからのものです。 http://jsfiddle.net/bitoiu/EKpGg/

スニペット:どのように変数で

$(function(){ 

    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    // script.url = 'some valid url'; 
    $('head').append(script); 
});​ 
関連する問題