在ie下還是會刷新頁面呀,大家也幫我測試一下,幫我看一下哪有問題
/**
* Created by Administrator on 2015/11/24.
*/
var myReady = function(fn){
? ?//對于現代瀏覽器,對DOMContentLoaded事件的處理是采用標準的事件綁定方式
? ?if(document.addEventListener){//通過能力檢測區分
? ? ? ?document.addEventListener("DOMContentLoaded", fn(), false);
? ?}else{
? ? ? ?IEContentLoaded(fn);
? ?}
? ?//IE下模擬定義DOMContentLoaded
? ?function IEContentLoaded(fn){
? ? ? ?var d = window.document; //將dom緩存在一個變量里
? ? ? ?var done = false;
? ? ? ?//只執行一次的回調函數 init()
? ? ? ?var init = function(){
? ? ? ? ? ?if(!done){
? ? ? ? ? ? ? ?dan = true;
? ? ? ? ? ? ? ?fn();
? ? ? ? ? ?}
? ? ? ?};
? ? ? ?(function(){//立即調用表達式
? ? ? ? ? ?try{
? ? ? ? ? ? ? ?//DOM樹還未創建完之前會拋出錯誤
? ? ? ? ? ? ? ?d.documentElement.doScroll('left');
? ? ? ? ? ?} catch(e){
? ? ? ? ? ? ? ?//延遲再試一次
? ? ? ? ? ? ? ?setTimeout(arguments.callee,50);
? ? ? ? ? ? ? ?return; //實現遞歸
? ? ? ? ? ?}
? ? ? ? ? ?// 到沒有錯誤就表示DOM創建完畢,然后立即執行回調函數
? ? ? ? ? ?init();
? ? ? ?})();
? ? ? ?//監聽document的加載狀況
? ? ? ?d.onreadystatechange = function(){
? ? ? ? ? ?//如果用戶是在domReady之后綁定的函數,就立即執行
? ? ? ? ? ?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);
應該寫成
? ? document.addEventListener("DOMContentLoaded", fn, false);
2015-11-24
找到問題了,謝謝