您的位置:首頁 > 網頁制作 > HTML/Xhtml

讓innerHTML中的script腳本執行起來

日期:2006-08-24 11:44:11 點擊: 來自: 作者:

在我們使用AJAX的時候,經常要用到innetHTML來更新對象的內容,但是對于更新的<script>腳本程序瀏覽器卻無法執行,我前面AJAX初學常遇問題解答這篇文章曾提到過這個問題,它不執行的原因是:<script>標簽只在瀏覽器第一次文檔加載中被解析,下面介紹怎么樣讓<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(); }
document.body.removeChild(jsIframe);//執行后刪除iframe對象

這里需要注意一個問題,因為jsCode是在iframe中運行,所以所有的頁面元素都在iframe父對象之下,要調用頁面元素對象必須得用 parent.obj 這種方式。

另外一種方法:

用dom動態創建一個script對象

以下是代碼片段:
var script=document.createElement("script");
script.src="XXXX.js";
document.body.appendChild(script);

More..素材圖片 Picture Navigation
相關鏈接 Correlation Link
HTML/Xhtml熱門 Class Hot
HTML/Xhtml推薦 Class Commend
版權所有:中國網站資源 2005- 未經授權禁止復制或建立鏡像 This Site Tech:XHTML+DIV+CSS+Javascript
CopyRight ® 2005- www.yndjjj.com online services. all rights reserved. ICP06016627
Optimized to 1024x768 to Firefox,Netscape,Opera,MS-IE6+.
中扑网