讓innerHTML的標簽執行起來
在我們使用AJAX的時候,經常要用到innetHTML來更新對象的內容,但是對于更新的<script>腳本程序瀏覽器卻無法執行,它不執行的原因是:<s-cript>標簽只在瀏覽器第一次文檔加載中被解析,下面介紹怎么樣讓<script>跑起來。
分析問題
既然<script>只在文檔加載中才被解析,那么我就得調用document.write()方法來重新加載一次,但是這樣的話原來頁面的內容也會被覆蓋掉了-,所以不得不用IFRAME把document.write()裝載起來。
解決問題
var jsCode = 需要執行的JS代碼
var jsIframe = document.createElement("iframe");
jsIframe.style.display = "none";//把jsIframe隱藏起來
document.body.appendChild(jsIframe);
with(window.frames[window.frames.length - 1]){
document.open();
document.write(jsCode); //執行JS代碼
document.close();
}
jsIframe.outerHTML="";//執行后刪除iframe對象 這里需要注意一個問題,因為jsCode是在iframe中運行,所以所有的頁面元素都在iframe父對象之下,要調用頁面元素對象必須得用 parent.obj 這種方式。