我有以下幾點:爲什麼Firefox 3的斷裂與執行console.log
console.log (a.time_ago() + ' ' + b.time_ago());
這是打破在Firefox 3中,當FF打在JS該行的意思,它去沒有進一步。奇怪的是,如果我打開Firebug,它不會中斷並繼續正常。一些螢火蟲如何防止這個問題?
我對此感到困惑。任何想到爲什麼console.log會打破Firefox 3,但不是如果螢火蟲打開?
謝謝
我有以下幾點:爲什麼Firefox 3的斷裂與執行console.log
console.log (a.time_ago() + ' ' + b.time_ago());
這是打破在Firefox 3中,當FF打在JS該行的意思,它去沒有進一步。奇怪的是,如果我打開Firebug,它不會中斷並繼續正常。一些螢火蟲如何防止這個問題?
我對此感到困惑。任何想到爲什麼console.log會打破Firefox 3,但不是如果螢火蟲打開?
謝謝
這不只是Firefox。您的代碼將停止在每個瀏覽器(除了Chrome和Safari瀏覽器(在某些情況下),因爲他們有與他們的開發工具一起內置console.log()除外)。
這是因爲當你沒有螢火蟲打開,沒有定義對象「控制檯」。你應該小心,千萬不要在你的代碼中留下console.log()函數,否則它將在每個瀏覽器中破壞。
我想補充一點,我有時用這個功能:
function log() {
if (typeof console == 'undefined') {
return;
}
console.log.apply(console, arguments);
}
然後,您只需撥打:
log(somevar, anothervar);
,它的工作方式是相同的控制檯.log,但是如果沒有加載螢火蟲,並且不會失敗(並且類型:P更短)
乾杯
哇我不知道! – AnApprentice
你可以使用'console.log()',在調用任何控制檯函數之前檢查'window.console'是否存在。例如。 'if(window.console)console.log('Hello World');' – Michal
safari也有console.log – generalhenry
Firefox沒有控制檯對象。 Firebug添加一個。
簡單的解決方法是讓firebug爲開發打開並移除console.log語句以進行部署。
,您還可以像
function log (msg)
{
if(console)
{
console.log(msg);
}
}
自定義日誌功能,如果控制檯存在
這個函數的問題在於它不會接受多個參數和參數,就像console.log()一樣,而且如果(控制檯)不是很好的檢查一個對象是否被定義或者不在javascript中。 – arnorhs
代碼片段不是爲了實現功能,而是爲了實現這個想法。我會發佈一個真實的例子,但你也打敗了我:p – generalhenry
在Firefox中,將只記錄,如果控制檯未打開,當你打電話給它的JavaScript錯誤被拋出。
我將我所有的console.log包裝在一個包裝中以檢查控制檯 - 您可以圍繞控制檯調用包裝檢查,也可以使用別名控制檯的不同名稱。
別名
/* konsole is a safe wrapper for the Firebug console. */
var konsole = {
log: function(args){},
dir: function(args){},
debug: function(args){},
info: function(args){},
warn: function(args){},
error: function(args){}
};
// Remove below here when in production
if (typeof window.console != 'undefined' && typeof window.console.log == 'function') {
konsole = window.console;
}
konsole.log('testing debugging');
konsole.error('throw an error message to the console');
檢查控制檯
if (typeof window.console != 'undefined' && typeof window.console.log == 'function') {
console.log('testing debugging');
console.error('throw an error message to the console');
}
在情況下,螢火蟲被關閉,我覆蓋控制檯對象。所以,你可以實現後備功能...
console = console || { log : function() {
// place your logging code here, if firebug is closed
}, debug : function() {
// place your debug code here, if firebug is closed
} /*, [ and so on .. ] */ };
問候,
Dyvor
爲了讓火狐3.0從抱怨可靠使用下面...
if ('console' in window) {}
是不是螢火蟲的一部分的console.log?因此,如果它沒有打開,沒有容器粘貼到... –