Saya punya banyak masalah dengan pengembang memeriksa di konsol mereka. () Pernyataan. Dan, saya benar-benar tidak suka men-debug Internet Explorer, meskipun ada peningkatan fantastis dari Internet Explorer 10 dan Visual Studio 2012 , dll.
Jadi, saya telah mengganti objek konsol itu sendiri ... Saya telah menambahkan flag __localhost yang hanya memungkinkan pernyataan konsol saat di localhost. Saya juga menambahkan konsol. () Berfungsi untuk Internet Explorer (yang menampilkan peringatan () sebagai gantinya).
// Console extensions...
(function() {
var __localhost = (document.location.host === "localhost"),
__allow_examine = true;
if (!console) {
console = {};
}
console.__log = console.log;
console.log = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__log === "function") {
console.__log(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert(msg);
}
}
};
console.__info = console.info;
console.info = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__info === "function") {
console.__info(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert(msg);
}
}
};
console.__warn = console.warn;
console.warn = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__warn === "function") {
console.__warn(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert(msg);
}
}
};
console.__error = console.error;
console.error = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__error === "function") {
console.__error(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert(msg);
}
}
};
console.__group = console.group;
console.group = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__group === "function") {
console.__group(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert("group:\r\n" + msg + "{");
}
}
};
console.__groupEnd = console.groupEnd;
console.groupEnd = function() {
if (__localhost) {
if (typeof console !== "undefined" && typeof console.__groupEnd === "function") {
console.__groupEnd(arguments);
} else {
var i, msg = "";
for (i = 0; i < arguments.length; ++i) {
msg += arguments[i] + "\r\n";
}
alert(msg + "\r\n}");
}
}
};
/// <summary>
/// Clever way to leave hundreds of debug output messages in the code,
/// but not see _everything_ when you only want to see _some_ of the
/// debugging messages.
/// </summary>
/// <remarks>
/// To enable __examine_() statements for sections/groups of code, type the
/// following in your browser's console:
/// top.__examine_ABC = true;
/// This will enable only the console.examine("ABC", ... ) statements
/// in the code.
/// </remarks>
console.examine = function() {
if (!__allow_examine) {
return;
}
if (arguments.length > 0) {
var obj = top["__examine_" + arguments[0]];
if (obj && obj === true) {
console.log(arguments.splice(0, 1));
}
}
};
})();
Contoh penggunaan:
console.log("hello");
Chrome / Firefox:
prints hello in the console window.
Internet Explorer:
displays an alert with 'hello'.
Bagi mereka yang memperhatikan kode ini, Anda akan menemukan fungsi console.examine (). Saya membuat ini tahun lalu sehingga saya dapat meninggalkan kode debug di area tertentu di sekitar produk untuk membantu memecahkan masalah QA / masalah pelanggan. Misalnya, saya akan meninggalkan baris berikut dalam beberapa kode yang dirilis:
function doSomething(arg1) {
// ...
console.examine("someLabel", arg1);
// ...
}
Dan kemudian dari produk yang dirilis, ketikkan yang berikut ke konsol (atau bilah alamat yang diawali dengan 'javascript:'):
top.__examine_someLabel = true;
Lalu, saya akan melihat semua pernyataan console.examine () yang dicatat. Sudah bantuan yang fantastis berkali-kali lipat.
console.log()
ini luar biasa untuk debugging js ... Saya sering lupa menggunakannya dalam praktek.