2013-01-16 137 views
1

我有一個我沒有見過的jQuery問題。我的腳本隱藏了某些包裝器,這在Firefox和Chrome中可用,但不適用於IE。奇怪的是,當我打開IE控制檯並刷新頁面以查看日誌時,它就像我期望的那樣工作。它只能在使用開放式工具進行刷新時修復!jQuery隱藏顯示奇怪的行爲

這裏是一個控制檯片段:

$.get('/help-and-advice/purchase-wizard/product-details/' + product_id, function(data) { 

      console.log(data); 

      $.each(data.show, function() { 
      $.each(this, function(index) { 
       $('#' + data.show[index]).show(); 
      }); 
      }); 

      $.each(data.hide, function() { 
      $.each(this, function(index) { 
       $('#' + data.hide[index]).hide(); 
      }); 
      }); 

在控制檯登錄我想隱藏的是data.show對象中列出過的包裝。當控制檯聲明存在和控制檯未打開

將其更改爲

window.console && console.log(...) 

或註釋掉或記憶測試


之前打F12

回答

2

IE失敗我有這個jsfiddle

簡單版本:

if (!window.console) window.console={ log:function(str) { alert(str) } } 

更復雜的版本,其處理逗號分隔的參數 - 它不解壓對象,但可以處理複雜

if (!window.console) 
    window.console={ log:function() { 
    var text = []; 
    for (var a,i=0;i<arguments.length;i++) { 
     a=arguments[i]; 
     text.push(typeof a+": "+(typeof a == "object" ? a.toString():a)); 
    } 
    alert(text.join('\n')) 
    } 
} 

console.log("test",new Date()) 
+1

的一個層或者,除去'的console.log()'完全。 – Jimbo

+1

乾杯隊友。好老,令人​​難以置信的可靠,完美的IE:D –