2010-03-30 33 views
0
$("document").ready(function(){ 
    contM = $('#main-content'); 
    contS = $('#second-content'); 
    $(contM).hide(); 
    $(contS).hide(); 
    function loadURL(url) { 
     console.log("loadURL: " + url); 
     $.post(url,{post_loader: 1},{post_loader: 1}, function(data){ 
                   $(contM).html($(data)); 
                   $(contM).show(); 
                   }); 
    } 


    // Event handlers 
    $.address.init(function(event) { 
     console.log("init: " + $('[rel=address:' + event.value + ']').attr('href')); 
    }).change(function(event) { 
     $.post($('[rel=address:' + event.value + ']').attr('href'), {post_loader: 1}, function(data){ 
                           $(contM).html($(data)); 
                           $(contM).show(); 
                           }); 
     console.log("change"); 
    }) 

    $('.update-main a').click(function(){ 
     loadURL($(this).attr('href')); 
    }); 
}); 

我使用此代碼來調用服務器來更新網頁的主要內容。 Google Chrome中一切正常,但無法在Firefox中正確執行。jquery ajax使用「地址」更新書籤網址

奇怪的是,當我打開控制檯來監視服務器通信時,應用程序工作正常,只有在關閉時纔會出現問題:腳本開始與服務器通信,但在接收數據之前瀏覽器跳轉到源網址。

我不斷收到這個錯誤在Firebug控制檯:e.success.call不是一個函數 Webdev的/ lostine /可溼性粉劑內容/主題/ lostine/JS/jQuery的1.4.1.min.js 121線

有什麼想法?

+0

您是否嘗試過用console.log()語句註釋掉? – wesgarrison 2010-03-30 01:35:04

回答

0

有和沒有控制檯處理不同的瀏覽器,我用保羅愛爾蘭的包裝的一個稍微改編版本,http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog

window.log = function() 
{ 
    if (window.console) { 
     if (console.firebug) { 
      console.log.apply(console, Array.prototype.slice.call(arguments)); 
     } else { 
      console.log.call(console, Array.prototype.slice.call(arguments)); 
     } 
    } 
}; 
0

由於wesgarrison評論,console並不總是出現在FireFox中,就像它在Chrome中一樣,你會得到一個console is undefined錯誤。您不需要調試時需要將console.log()行註釋掉,或者將它們包裝在if(console){}檢查中。

在中控臺出它的工作原理是因爲... console定義的話,沒有任何錯誤:)