让innerHTML的脚本也可以运行起来
让innerHTML的脚本也可以运行起来
发布时间:2016-12-29 来源:查字典编辑
摘要:最近在脑子一直在想pjblog重构的问题.当然重构前,必须把所有需要做的东西想清楚.其中想到一个js改进的内容,需要innerHTML后的脚...

最近在脑子一直在想pjblog重构的问题.当然重构前,必须把所有需要做的东西想清楚.其中想到一个js改进的内容,需要innerHTML后的脚本也可以运行.但是尝试了一下.发现IE下直接innerHTML的脚本无法执行.尝试了几次发现,插入的HTML里,<script>前面有其他对象,并且script设置了defer,这样的脚本innerHTML被IE执行了.,但是这招对于firefox不灵~~后来找了一些资料发现firefox把对象重新append或者insertBefore一次就可以执行里面的脚本了.

程序代码

varfillHTML=function(el,HTMLString){

if(!el)return;

if(window.ActiveXObject){//ForIE

el.innerHTML="<imgstyle='display:none'/>"+HTMLString.replace(/<script([^>]*)>/ig,'<script$1defer>');

el.removeChild(el.firstChild)

}else{//ForMozilla,Opare

varnSibling=el.nextSibling;

varpNode=el.parentNode;

pNode.removeChild(el);

el.innerHTML=HTMLString;

pNode.insertBefore(el,nSibling)

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类