[英]IE alternative to console.log()
因此,環顧四周后,我發現console.log()可以炸毀IE9。 因此,我不能在代碼中留下任何內容,既然如此,我該怎么辦?
我的data_box顯示了用戶輸入的一些文本。 但是,如果沒有文本,我想調用showMsg(),它會創建一個帶有一些文本的新框,“此處沒有文本”。
(data_box.length) ? console.log('') : showMsg();
如果存在data_box,我可以用什么替代方式替換'console.log('')'來告訴三元函數什么也不做?
有使用任何合乎邏輯的理由console.log
用於這一目的。
簡單地說,如果您不需要else
操作,則可以避免三元運算(在某些情況下比三元運算符更短)。
if(!data_box.length){ showMsg()}
如果您絕對想要三元運算符,則可以執行以下操作:
data_box.length? null : showMsg();
或者,如果您絕對想要一個函數(我看不出任何有效的理由……但這只是一種練習),則可以通過以下方式聲明函數doNothing
:
function doNothing() {}
和
(data_box.length)? doNothing() : showMsg();
或不帶函數委托:
data_box.length? (function() {})() : showMsg();
或再次:
data_box.length || showMsg();
等等… :-)
最簡單的方法是編寫自己的console.log
函數,並在瀏覽器不提供的情況下使用它。
window.console = window.console || { log: function () { } };
…但是最好將調試例程從代碼中剝離出來,然后再投入生產。
我會給您幾行代碼來使其正常工作,但是關注該博客在解決該問題方面做得很好。 讀這個
http://patik.com/blog/complete-cross-browser-console-log/
至於我自己,我已經停止直接使用console.log()
。 太個性了!
我有自己的log()
函數:
function log() {
var arg = Array.prototype.slice.call(arguments);
if (console && console.log) {
console.log.apply(console, arg);
} else {
for (var i = 0; i < arg.length; i++) alert(arg[i]);
}
}
然后您可以調用它:
log('test', {}, ['test', 'hello']);
在ie中,它將彈出3條警報: 'test', [object Object], 'test,hello'
要“如果正確則什么也不做” ,您可以這樣做:
(data_box.length) || showMsg();
但實際上,最好使用if
:
if(!data_box.length) showMsg();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.