DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 在網頁中使用document.write時遭遇的奇怪問題
在網頁中使用document.write時遭遇的奇怪問題
編輯:關於JavaScript     
在前些日子的對Razor模板引擎向JavaScript移植進行研究的過程中,我發現如果使用document.write輸出的內容中包含了調用外部的JavaScript的<script>標記,就可能出現一點問題——在這裡面被調用的外部JavaScript可能會在不適當的時間被執行,對於IE和Opera來說,就是當write的參數中的所有其它部分內容都被解析之後,這些外部的JavaScript才會執行。

而在進一步研究中我又發現,對於Chrome和Safari這兩個使用了WebKit網頁排版引擎的浏覽器來說,如果外部調用的JavaScript中再次調用document.write來寫入另一個調用外部JavaScript的<script>標記,則第二次調用的外部JavaScript不會被執行,而之後的一些內容也會被打亂——實際情況其實要稍微復雜一點,跟第二級、第三級document.write調用的參數中的具體內容有關,因為時間和精力的關系我沒有辦法作更具體的測試了。

在經過這些研究以後,幾大主流浏覽器中唯一幸存的、能正確處理所有document.write調用的,就只有Firefox了。
Firefox的一種偽“多線程”事件處理的特性一直是讓我很不見待的東西,這件事也算是對“各有所長”的一個佐證吧。

想要了解這個問題所引發的種種現象,可以下載write-test.zip,解壓之後用各種浏覽器打開其中的write-test.htm。

這幾天我一直在嘗試編寫一個替用函數來解決這個問題,目前已經能順利通過上面那個鏈接中的測試了。
如果接下來的幾天之內沒有發現什麼明顯的問題,我會把它發在博客上供大家參考。
測試代碼,打包下載
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved