我有一些HTML结构如下
<script>
function x()
{
alert('works');
}
</script>
<table>
(...)
</table>
<script>
console.log('autoexec');
</script>
我是通过XMLHttpRequest从DIV的innerHTML中的文件加载此HTML。
完成请求后,这就是我的工作
div.innerHTML = request.responseText;
var scripts = div.getElementsByTagName("script");
for(var i=0;i<scripts.length;i++) eval(scripts[i].text);
包含函数外部代码的底部脚本将被执行。 但是,顶部脚本中的函数x()不会被评估并且仍然不可用。
我错过了什么? 感谢
答案 0 :(得分:0)
解决。我现在使用document.head.appendChild(scripts [i])而不是eval(scripts [i] .text)。这两个都正确执行函数外部的代码并使该函数可用于调用。