5

Javascript を使用して追加のカスタム JavaScript を生成し、それを HEAD タグに追加しています。以下のコードは、javascript ファイルを追加するとうまく機能しますが、スクリプトが生成されたばかりの変数にある場合はどうなるでしょうか?

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

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

4

3 に答える 3

4
   // 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)();
于 2012-11-14T21:53:51.210 に答える
3
var scriptTag = document.createElement("script");
scriptTag.setAttribute("type", "text/javascript");

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

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

ライブデモ

于 2012-11-14T21:53:01.003 に答える
0

どちらの回答も、特に@gdoronからの回答で問題ないようです。

jqueryで同じことをしたい場合に備えて、簡単な例を作成しました:http: //jsfiddle.net/bitoiu/EKpGg/

スニペット:

$(function(){

    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    // script.url = 'some valid url';
    $('head').append( script );
});​
于 2012-11-14T22:10:11.623 に答える