6

次のようなものを作成することは可能ですか:

var jsfile = "code....";
(a=(b=document).createElement('script')).src=jsfile;
b.body.appendChild(a);

「jsfile」は外部 js ファイルのようなものですが、この場合は変数になりますか?

私のテストはすべて失敗し、「jsfile」の入力を取得することに成功しましたが、obj 内に関数があった場合 (外部 js ファイルのように実行したいことを思い出してください)、それらは実行されませんでした。

テストの例:

var jsfile = "code....";
(a=(b=document).createElement('script')).text=(jsfile);
b.body.appendChild(a);
4

2 に答える 2

8

次のように、スクリプト要素にタイプを設定してみてください ( Can't append <script> elementから取得):

var script   = document.createElement("script");
script.type  = "text/javascript";
script.src   = "path/to/your/javascript.js";    // use this for linked script
script.text  = "alert('voila!');"               // use this for inline script
document.body.appendChild(script);
于 2012-10-09T17:34:39.610 に答える
6

はい、実際には、src属性は JavaScript ファイル パスにのみ使用されます。コードをレンダリングする場合は、innerTextプロパティを使用できます。

var code = 'alert("working!")';
var script = document.createElement('script');
script.innerText = code;

document.body.appendChild(script);
于 2012-10-09T17:36:20.573 に答える