0

DIVを動的に作成しましたが、何かを出力するJavaScriptリンクを含める必要があります。JavaScriptリンクソースは絶対です。明らかに、これは機能しません。

var div = document.createElement('div');
    div.id = 'mydiv';
    div.innerHTML = "<script type='text/javascript' " + 
                    "src='http://mydomain.com/myscript.js'></script>";
    document.body.appendChild(div);

だからこれを試してみました

var script = document.createElement('script')
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'http://mydomain.com/myscript.js');

var div = document.createElement('div');
    div.id = 'mydiv';

    div.appendChild(script);
    document.body.appendChild(div);

私のスクリプトファイルには、簡単なalert('Testing...');コードがあります。問題はそれが機能しないことです。スクリプトインクルードはdiv内に入力されますが(ChromeでDIVを検査すると表示されます)、機能しません。「テスト中...」というメッセージが表示されません。私は何が欠けているか、間違っていますか?ありがとう!

4

2 に答える 2

1

私の理解では、コードはDOMの準備ができるまで待機しません。

jqueryのreadyを使用することをお勧めします。これにより、渡されたスクリプトがDOMの準備ができた後にのみ実行されるようになります。

お役に立てれば

于 2012-06-04T16:51:33.527 に答える
0
<html>
<head>  
</head> 
<body>  
<script type='text/javascript'> 
    var script = document.createElement('script')
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'my.js');

    var div = document.createElement('div');
    div.id = 'mydiv';

    div.appendChild(script);
    document.body.appendChild(div); 
</script> 
</body>
</html>

このコードは私には機能しますが、はい、私にdocument.write()は機能しません。

于 2012-06-04T17:06:36.377 に答える