我有一个带有JS元素的HTML,我需要在运行时加载。
这些是一些示例文件,用于说明我正在寻找的功能。
文件1:index.html
<div id="mydiv"> </div>
<script type="text/javascript">
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","script.php",false);
xmlhttp.send();
var text=xmlhttp.responseText;
var elem=document.getElementById("mydiv")
elem.innerHTML=text
func()
</script>
文件2:script.php
<script type="text/javascript">
function func(){
alert("func")
}
</script>
浏览器返回的错误:
内联脚本线程
未捕获的异常:ReferenceError:未定义 变量:func在第20行,第0列中引发错误 本地主机/ MY_PROJECT /: FUNC()
答案 0 :(得分:0)
.innerHTML
不会在html中执行脚本元素。
试试这个:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","script.php",false);
xmlhttp.send();
var text=xmlhttp.responseText;
var root = document.createElement("div");
root.innerHTML = text;
var scripts = root.getElementsByTagName("script");
for( var i = 0; i < scripts.length; ++i ) {
var code = scripts[i].innerText || scripts[i].textContent || scripts[i].innerHTML || "";
eval(code);
}
func();