0

次の 2 つのファイルがあるとします。

test.html

<div id="stuff"></div>
<button onclick="doStuff()">Magic</button>
<script>
var foo = new function() {
    this.bar = function() {
        return "THE MAGIC!";
    };
};

function doStuff() {
    $('#stuff').load('stuffToDo.html');
}
</script>

stuffToDo.html

<div><script>document.write(foo.bar());</script></div>

stuffToDo.html の動的コンテンツを test.html の div に挿入したいと思います。後続の $('#stuff').html(data) で jQuery.load() または jQuery.get() を使用すると、スクリプトが挿入前に実行されるように見えることがわかりました。フーシングルトン。これを行うためのより良い方法、または少なくともスクリプトタグを実行または削除せずにコンテンツをdivに配置してからevalを実行する方法はありますか?

4

2 に答える 2

1

実際に script タグを挿入してから、innerHTML に追加することをお勧めします。

プレーンな Javascript の場合:

var script= document.createElement('script');
script.src = stuff.js
document.body.appendChild(script);

//in script.js

var stuff=document.getElementsById('stuff');
stuff.innerHTML=foo.bar()
于 2013-10-02T16:55:28.847 に答える