最近在优化调整cms程序时,有一功能:选择不同的类型后,通过ajax获取不同类型的属性,在页面某个div设置innerHTML中显示,其中获取的属性中有js代码,需要运行js代码。经过查询后处理如下。

执行innerHTML里面的JS代码

document.getElementById("param").innerHTML = res.data; 
var scripts = document.getElementById("param").getElementsByTagName("script"); 
for(var i=0;i<scripts.length;i++){ 
  //一段一段执行script 
  eval(scripts[i].innerHTML); 
}

原理是通过ajax获取html代码,再查找html代码中的script,最后用eval来执行。