Heim >Web-Frontend >js-Tutorial >让innerHTML的脚本也可以运行起来_javascript技巧

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

WBOY
WBOYOriginal
2016-05-16 19:28:26995Durchsuche

最近在脑子一直在想pjblog重构的问题.当然重构前,必须把所有需要做的东西想清楚.其中想到一个js改进的内容,需要innerHTML后的脚本也可以运行.但是尝试了一下.发现IE下直接innerHTML的脚本无法执行. 尝试了几次发现,插入的HTML里,<script>前面有其他对象,并且script 设置了 defer , 这样的脚本innerHTML被IE执行了. ,但是这招对于firefox不灵~~ 后来找了一些资料发现 firefox 把对象重新 append 或者 insertBefore 一次就可以执行里面的脚本了. <br><br> 程序代码 <BR>var fillHTML = function (el,HTMLString) { <BR> if (!el) return; <BR>if (window.ActiveXObject) { //For IE <BR>el.innerHTML = "<img style="max-width:90%"/ alt="让innerHTML的脚本也可以运行起来_javascript技巧" >" + HTMLString.replace(/<script([^>]*)>/ig, '<script$1 defer>'); <BR>el.removeChild(el.firstChild) <BR>} else { //For Mozilla,Opare <BR>var nSibling = el.nextSibling; <BR>var pNode = el.parentNode; <BR>pNode.removeChild(el); <BR>el.innerHTML = HTMLString; <BR>pNode.insertBefore(el,nSibling) <BR>} <BR>} </script>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn