讓innerHTML的腳本也可以運(yùn)行起來(lái)
更新時(shí)間:2006年07月01日 00:00:00 作者:
最近在腦子一直在想pjblog重構(gòu)的問(wèn)題.當(dāng)然重構(gòu)前,必須把所有需要做的東西想清楚.其中想到一個(gè)js改進(jìn)的內(nèi)容,需要innerHTML后的腳本也可以運(yùn)行.但是嘗試了一下.發(fā)現(xiàn)IE下直接innerHTML的腳本無(wú)法執(zhí)行. 嘗試了幾次發(fā)現(xiàn),插入的HTML里,<script>前面有其他對(duì)象,并且script 設(shè)置了 defer , 這樣的腳本innerHTML被IE執(zhí)行了. ,但是這招對(duì)于firefox不靈~~ 后來(lái)找了一些資料發(fā)現(xiàn) firefox 把對(duì)象重新 append 或者 insertBefore 一次就可以執(zhí)行里面的腳本了.
程序代碼
var fillHTML = function (el,HTMLString) {
if (!el) return;
if (window.ActiveXObject) { //For IE
el.innerHTML = "<img style='display:none'/>" + HTMLString.replace(/<script([^>]*)>/ig, '<script$1 defer>');
el.removeChild(el.firstChild)
} else { //For Mozilla,Opare
var nSibling = el.nextSibling;
var pNode = el.parentNode;
pNode.removeChild(el);
el.innerHTML = HTMLString;
pNode.insertBefore(el,nSibling)
}
}
程序代碼
var fillHTML = function (el,HTMLString) {
if (!el) return;
if (window.ActiveXObject) { //For IE
el.innerHTML = "<img style='display:none'/>" + HTMLString.replace(/<script([^>]*)>/ig, '<script$1 defer>');
el.removeChild(el.firstChild)
} else { //For Mozilla,Opare
var nSibling = el.nextSibling;
var pNode = el.parentNode;
pNode.removeChild(el);
el.innerHTML = HTMLString;
pNode.insertBefore(el,nSibling)
}
}
相關(guān)文章
解決option標(biāo)簽selected="selected"屬性失效的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決option標(biāo)簽selected="selected"屬性失效的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助2017-11-11
UniApp開(kāi)發(fā)H5接入微信登錄的全過(guò)程
uni-app是一個(gè)使用Vue.js開(kāi)發(fā)跨平臺(tái)應(yīng)用的前端框架,下面這篇文章主要給大家介紹了關(guān)于UniApp開(kāi)發(fā)H5接入微信登錄的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
JavaScript腳本性能優(yōu)化注意事項(xiàng)
本文總結(jié)了我在JavaScript編程中所找到的提高JavaScript運(yùn)行性能的一些方法,其實(shí)這些經(jīng)驗(yàn)都基于幾條原則2008-11-11
原生javascript實(shí)現(xiàn)的ajax異步封裝功能示例
這篇文章主要介紹了原生javascript實(shí)現(xiàn)的ajax異步封裝功能,結(jié)合完整實(shí)例形式分析了原生javascript實(shí)現(xiàn)的ajax異步交互函數(shù)與相應(yīng)的使用方法,需要的朋友可以參考下2016-11-11
javascript SocialHistory 檢查訪問(wèn)者是否訪問(wèn)過(guò)某站點(diǎn)
今天delicious上這個(gè)名為 SocialHistory 的腳本十分引人注目。源代碼可以在這里下載。這段js代碼的功能就是判斷你的用戶(hù)有沒(méi)有訪問(wèn)過(guò)某個(gè)網(wǎng)站。使用方法很簡(jiǎn)單,例如:2008-08-08
JS實(shí)現(xiàn)左右拖動(dòng)改變內(nèi)容顯示區(qū)域大小的方法
這篇文章主要介紹了JS實(shí)現(xiàn)左右拖動(dòng)改變內(nèi)容顯示區(qū)域大小的方法,涉及JavaScript實(shí)時(shí)響應(yīng)鼠標(biāo)事件動(dòng)態(tài)改變頁(yè)面元素屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
javascript獲取checkbox復(fù)選框獲取選中的選項(xiàng)
這篇文章主要介紹了javascript獲取checkbox復(fù)選框獲取選中的選項(xiàng)的方法,需要的朋友可以參考下2014-08-08

