最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在網(wǎng)頁(yè)中使用document.write時(shí)遭遇的奇怪問(wèn)題

 更新時(shí)間:2010年08月24日 02:21:15   作者:  
很多時(shí)候我們都會(huì)在網(wǎng)頁(yè)上的JavaScript中使用document.write來(lái)寫(xiě)入一些東西,有的時(shí)候可能因?yàn)槲覀儫o(wú)法改變某一部分HTML而不得不使用這樣的辦法,也有的時(shí)候是因?yàn)樵谶M(jìn)行跨應(yīng)用的腳本調(diào)用。
在前些日子的對(duì)Razor模板引擎向JavaScript移植進(jìn)行研究的過(guò)程中,我發(fā)現(xiàn)如果使用document.write輸出的內(nèi)容中包含了調(diào)用外部的JavaScript的<script>標(biāo)記,就可能出現(xiàn)一點(diǎn)問(wèn)題——在這里面被調(diào)用的外部JavaScript可能會(huì)在不適當(dāng)?shù)臅r(shí)間被執(zhí)行,對(duì)于IE和Opera來(lái)說(shuō),就是當(dāng)write的參數(shù)中的所有其它部分內(nèi)容都被解析之后,這些外部的JavaScript才會(huì)執(zhí)行。

而在進(jìn)一步研究中我又發(fā)現(xiàn),對(duì)于Chrome和Safari這兩個(gè)使用了WebKit網(wǎng)頁(yè)排版引擎的瀏覽器來(lái)說(shuō),如果外部調(diào)用的JavaScript中再次調(diào)用document.write來(lái)寫(xiě)入另一個(gè)調(diào)用外部JavaScript的<script>標(biāo)記,則第二次調(diào)用的外部JavaScript不會(huì)被執(zhí)行,而之后的一些內(nèi)容也會(huì)被打亂——實(shí)際情況其實(shí)要稍微復(fù)雜一點(diǎn),跟第二級(jí)、第三級(jí)document.write調(diào)用的參數(shù)中的具體內(nèi)容有關(guān),因?yàn)闀r(shí)間和精力的關(guān)系我沒(méi)有辦法作更具體的測(cè)試了。

在經(jīng)過(guò)這些研究以后,幾大主流瀏覽器中唯一幸存的、能正確處理所有document.write調(diào)用的,就只有Firefox了。
Firefox的一種偽“多線程”事件處理的特性一直是讓我很不見(jiàn)待的東西,這件事也算是對(duì)“各有所長(zhǎng)”的一個(gè)佐證吧。

想要了解這個(gè)問(wèn)題所引發(fā)的種種現(xiàn)象,可以下載write-test.zip,解壓之后用各種瀏覽器打開(kāi)其中的write-test.htm。

這幾天我一直在嘗試編寫(xiě)一個(gè)替用函數(shù)來(lái)解決這個(gè)問(wèn)題,目前已經(jīng)能順利通過(guò)上面那個(gè)鏈接中的測(cè)試了。
如果接下來(lái)的幾天之內(nèi)沒(méi)有發(fā)現(xiàn)什么明顯的問(wèn)題,我會(huì)把它發(fā)在博客上供大家參考。
測(cè)試代碼,打包下載

相關(guān)文章

最新評(píng)論

闽清县| 西城区| 鄄城县| 黄山市| 金门县| 白山市| 宾阳县| 龙口市| 北碚区| 娱乐| 怀来县| 伊宁市| 临高县| 简阳市| 房产| 盐亭县| 霍邱县| 邵武市| 大竹县| 佛山市| 阿荣旗| 新津县| 多伦县| 张北县| 德惠市| 宁安市| 景泰县| 吴忠市| 晋中市| 綦江县| 宜君县| 秦安县| 大竹县| 花莲县| 南丰县| 波密县| 淅川县| 平泉县| 东山县| 南川市| 棋牌|