<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-129  文章-0  trackbacks-0

    這個問題算是個老問題了。
    所以,標題加上一個再字。

    我主要說一下模擬這個事件時候容易出現的問題。

    對于FF,Opera9,原生DOMContentLoad支持,就不說了,最頭疼的是IE。
    我最初考慮這個問題的時候,想到的是document的readyState屬性。
    偷窺一下Dojo的源碼,發現它也是基于這個屬性去做的,那時,我基本就認準了這個方法。
    于是再后來JSI1和JSI2早期的預覽版本中,都是基于這個屬性做的,后來,有個朋友向我反應,說JSI的裝飾引擎在IE上啟動比FF慢很多,我當時就猜測,是否是這個DOMContentLoad的問題。

    經過測試,發現,確實,readyState必須等待圖片裝載完成之后才能置為complete。
    于是到網上搜索一下其他辦法,最終 Dean Edwards的blog上描述的一個基于script defer屬性的解決辦法勝出:http://dean.edwards.name/weblog/category/dom/onload/
    不過,使用document.write打印一段腳本,我真的不喜歡:(

    在評論里面我們可以看到一些其他的建議,有人認為 readyState == 'complete' 加 readyState==‘interactive’這個狀態可以準確模擬DOMContentLoad。我開始簡單測試一下,貌似可行,但是后來發現 readyState==‘interactive’可能受alert等函數影響,就是說,一般情況下,readyState== ‘interactive’時,dom是裝載完了的,但是,當你文檔裝載過程中,調用了alert函數,那么,readyState將提前置為 ‘interactive’。

    總之,目前來說,我知道的,只有兩個辦法可以真正實現IE上模擬DOMContentLoad

      1.htc ondocumentready(需要額外的HTC文件)
      2.script defer(必須使用document.write打印一段腳本標記,jquery目前采用的方式)

    最常見的一個錯誤:
      document.readyState(Dojo目前(0.4.1)采用的方式)

    再說一下JSI的DOMContentLoad實現的使用接口。

    js.html.EventUtil.addDOMReadyListener(<Function>listener ,<boolean>runAnyCase )

    第二個參數用于確保listener 在任何時候都會被調用(FF DOMContentLoad事件如果在事件發生之后設置listener是無效的)

    posted on 2007-06-25 09:13 金大為 閱讀(656) 評論(0)  編輯  收藏 所屬分類: JavaScript
    主站蜘蛛池模板: 国语成本人片免费av无码 | 大陆一级毛片免费视频观看i| 久久精品亚洲日本佐佐木明希| h视频免费高清在线观看| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 最好2018中文免费视频| 免费人成在线观看网站品爱网日本| 亚洲熟妇少妇任你躁在线观看| 女人18一级毛片免费观看| 亚洲偷自精品三十六区| 免费观看的av毛片的网站| 蜜芽亚洲av无码一区二区三区| 免费观看国产小粉嫩喷水| 菠萝菠萝蜜在线免费视频| 中文字幕中韩乱码亚洲大片| 两个人www免费高清视频| 亚洲人成网www| 99久久久国产精品免费无卡顿| 亚洲色精品三区二区一区| 免费a级毛片视频| 精品无码一级毛片免费视频观看 | 久久亚洲国产伦理| 波多野结衣在线免费观看| 亚洲色欲色欱wwW在线| 亚洲综合国产精品第一页| 国产色爽免费无码视频| 亚洲日韩中文字幕天堂不卡| 久久精品女人天堂AV免费观看| 亚洲国产精品无码中文lv| 久久久久亚洲?V成人无码| 人妻丰满熟妇无码区免费| 亚洲w码欧洲s码免费| 国产美女被遭强高潮免费网站| 国产福利在线观看永久免费| 亚洲色偷偷偷网站色偷一区| 黄a大片av永久免费| 久久久久久久99精品免费观看| 亚洲五月综合缴情婷婷| 亚洲日韩aⅴ在线视频| 成人免费无码视频在线网站| 国产精品免费视频观看拍拍|