讓innerHTML的腳本也可以運行起來
更新時間:2006年07月01日 00:00:00 作者:
最近在腦子一直在想pjblog重構的問題.當然重構前,必須把所有需要做的東西想清楚.其中想到一個js改進的內(nèi)容,需要innerHTML后的腳本也可以運行.但是嘗試了一下.發(fā)現(xiàn)IE下直接innerHTML的腳本無法執(zhí)行. 嘗試了幾次發(fā)現(xiàn),插入的HTML里,<script>前面有其他對象,并且script 設置了 defer , 這樣的腳本innerHTML被IE執(zhí)行了. ,但是這招對于firefox不靈~~ 后來找了一些資料發(fā)現(xiàn) firefox 把對象重新 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)
}
}
相關文章
解決option標簽selected="selected"屬性失效的問題
下面小編就為大家?guī)硪黄鉀Qoption標簽selected="selected"屬性失效的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助2017-11-11
原生javascript實現(xiàn)的ajax異步封裝功能示例
這篇文章主要介紹了原生javascript實現(xiàn)的ajax異步封裝功能,結合完整實例形式分析了原生javascript實現(xiàn)的ajax異步交互函數(shù)與相應的使用方法,需要的朋友可以參考下2016-11-11
javascript SocialHistory 檢查訪問者是否訪問過某站點
今天delicious上這個名為 SocialHistory 的腳本十分引人注目。源代碼可以在這里下載。這段js代碼的功能就是判斷你的用戶有沒有訪問過某個網(wǎng)站。使用方法很簡單,例如:2008-08-08
JS實現(xiàn)左右拖動改變內(nèi)容顯示區(qū)域大小的方法
這篇文章主要介紹了JS實現(xiàn)左右拖動改變內(nèi)容顯示區(qū)域大小的方法,涉及JavaScript實時響應鼠標事件動態(tài)改變頁面元素屬性的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
javascript獲取checkbox復選框獲取選中的選項
這篇文章主要介紹了javascript獲取checkbox復選框獲取選中的選項的方法,需要的朋友可以參考下2014-08-08

