关于DEFER,载入HTML段中如果有脚本,如何运行?
例如:
<HTML>
<HEAD>
<TITLE> DEFER </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
var newPage = new Array();
newPage[0] = '<div style="background:silver; width:200px; height:100px; margin:20px;"></div>';
newPage[1] = '<div style="background:blue; width:150px; height:200px; margin:10px;"><SCRIPT LANGUAGE="JavaScript">function doSomething(){;}</SCRIPT><br><a href="#" >Hello</a></div>';
//-->
</SCRIPT>
</HEAD>
<BODY>
Here laod page:<br>
<span id=sp1></span>
<button onclick="sp1.innerHTML=newPage[0];">p1</button><br>
<button onclick="sp1.innerHTML=''; sp1.innerHTML = newPage[1];alert(sp1.outerHTML);">p1</button><br>
</BODY>
</HTML>
此时sp1中已经没有<script>段了,即如果执行doSomething()会报缺少对象。我想可能innerHTML能够将非内嵌的教本过滤掉。
现在我需要在客户端运行过程中动态加载某些内容,比如在一个DIV中, 动态加入不同HTML文件的整个代码,且正常显示(原来是TABLE,现在也是TABLE),但发现原来HTML文件的客户端脚本都不可以运行了! 仔细分析后发现使用innerHTML 或 insertAdjecentHTML都会过滤脚本,使用innerText则根本不能显示效果。
望高手指点!