虽然@Ed 接受了答案。不适用于当前版本的 Firefox、Google Chrome 或 Safari 浏览器我设法熟练使用他的示例以调用动态添加的脚本。
必要的更改仅在于将脚本添加到 DOM 的方式。而不是添加它作为innerHTML
技巧是创建一个新的脚本元素并将实际脚本内容添加innerHTML
到创建的元素,然后将脚本元素附加到实际目标。
<html>
<head>
<script type='text/javascript'>
function addScript()
{
var newdiv = document.createElement('div');
var p = document.createElement('p');
p.innerHTML = "Dynamically added text";
newdiv.appendChild(p);
var script = document.createElement('script');
script.innerHTML = "alert('i am here');";
newdiv.appendChild(script);
document.getElementById('target').appendChild(newdiv);
}
</script>
</head>
<body>
<input type="button" value="add script" onclick="addScript()"/>
<div>hello world</div>
<div id="target"></div>
</body>
</html>
这适用于 Firefox 42、Google Chrome 48 和 Safari 9.0.3