让innerHTML的脚本也可以运行起来

时间:2021-05-18

最近在脑子一直在想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)
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章