Konsollarında kontrol eden geliştiricilerle ilgili birçok sorun yaşadım. () İfadeleri. Ve Internet Explorer 10 ve Visual Studio 2012'deki fantastik iyileştirmelere rağmen, Internet Explorer'da hata ayıklamayı gerçekten sevmiyorum gibi .
Bu yüzden, konsol nesnesinin kendisini geçersiz kıldım ... Yalnızca localhost üzerinde konsol deyimlerine izin veren bir __localhost bayrağı ekledim. Internet Explorer'a konsol (.) İşlevlerini de ekledim (bunun yerine bir uyarı () görüntüler).
// 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));
}
}
};
})();
Örnek kullanım:
console.log("hello");
Krom / Firefox:
prints hello in the console window.
Internet Explorer:
displays an alert with 'hello'.
Koda yakından bakanlar için console.examine () işlevini keşfedeceksiniz. KG / müşteri sorunlarını gidermeye yardımcı olması için ürünün çevresindeki belirli alanlarda hata ayıklama kodu bırakabilmem için bu yıllar önce oluşturdum . Örneğin, bazı yayınlanmış kodda aşağıdaki satırı bırakacaktı:
function doSomething(arg1) {
// ...
console.examine("someLabel", arg1);
// ...
}
Ardından, piyasaya sürülen üründen konsola (veya 'javascript:' ile başlayan adres çubuğuna) aşağıdakileri yazın:
top.__examine_someLabel = true;
Sonra, kaydedilen console.examine () deyimlerinin tümünü göreceğim. Birçok kez fantastik bir yardımcı oldu.
console.log()
js hata ayıklama için harika ... Sık sık pratikte kullanmayı unutuyorum.