在ie下還是會刷新頁面呀,大家也幫我測試一下,幫我看一下哪有問題
/**
* Created by Administrator on 2015/11/24.
*/
var myReady = function(fn){
? ?//對于現(xiàn)代瀏覽器,對DOMContentLoaded事件的處理是采用標(biāo)準(zhǔn)的事件綁定方式
? ?if(document.addEventListener){//通過能力檢測區(qū)分
? ? ? ?document.addEventListener("DOMContentLoaded", fn(), false);
? ?}else{
? ? ? ?IEContentLoaded(fn);
? ?}
? ?//IE下模擬定義DOMContentLoaded
? ?function IEContentLoaded(fn){
? ? ? ?var d = window.document; //將dom緩存在一個變量里
? ? ? ?var done = false;
? ? ? ?//只執(zhí)行一次的回調(diào)函數(shù) init()
? ? ? ?var init = function(){
? ? ? ? ? ?if(!done){
? ? ? ? ? ? ? ?dan = true;
? ? ? ? ? ? ? ?fn();
? ? ? ? ? ?}
? ? ? ?};
? ? ? ?(function(){//立即調(diào)用表達(dá)式
? ? ? ? ? ?try{
? ? ? ? ? ? ? ?//DOM樹還未創(chuàng)建完之前會拋出錯誤
? ? ? ? ? ? ? ?d.documentElement.doScroll('left');
? ? ? ? ? ?} catch(e){
? ? ? ? ? ? ? ?//延遲再試一次
? ? ? ? ? ? ? ?setTimeout(arguments.callee,50);
? ? ? ? ? ? ? ?return; //實(shí)現(xiàn)遞歸
? ? ? ? ? ?}
? ? ? ? ? ?// 到?jīng)]有錯誤就表示DOM創(chuàng)建完畢,然后立即執(zhí)行回調(diào)函數(shù)
? ? ? ? ? ?init();
? ? ? ?})();
? ? ? ?//監(jiān)聽document的加載狀況
? ? ? ?d.onreadystatechange = function(){
? ? ? ? ? ?//如果用戶是在domReady之后綁定的函數(shù),就立即執(zhí)行
? ? ? ? ? ?if(d.readyState == "complete"){
? ? ? ? ? ? ? ?d.onreadystatechange = null;
? ? ? ? ? ? ? ?init();
? ? ? ? ? ?}
? ? ? ?};
? ?}
};
2015-11-24
1、我并沒有看到你在哪兒定義了一個變量叫做,蛋
? ? ?dan
? ? ?var init = function(){
? ? ? ? ? ?if(!done){
? ? ? ? ? ? ? ?dan = true; // 這個蛋是從哪兒來的 ???
? ? ? ? ? ? ? ?fn();
? ? ? ? ? ?}
? ? ? ?};
2、?document.addEventListener("DOMContentLoaded", fn(), false);
應(yīng)該寫成
? ? document.addEventListener("DOMContentLoaded", fn, false);
2015-11-24
找到問題了,謝謝