
рд▓рдЧрднрдЧ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрдВрд╕реЛрд▓ рдХреНрд░реЛрдо, рдУрдкреЗрд░рд╛, IE рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлреЙрдХреНрд╕ рдореЗрдВ рдлрд╛рдпрд░рдмрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣реИ:
- рдХрдВрд╕реЛрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ
- рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
- рдЙрддреНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
- рдЧреИрд░-рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛
рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд░реЗрдВ!
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдорд╛рд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореВрд▓ рдХрдВрд╕реЛрд▓ рдХреЛ рдЪрд░
original
рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛
(function () { var global = this; var original = global.console;
рдЕрдм рдЖрдкрдХреЛ рдореВрд▓ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ:
(function () { var global = this; var original = global.console; var console = global.console = {};
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛, рдмрд▓реНрдХрд┐ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рднреА рд╣рд▓ рд╣реБрдИ - рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рдВрджрд░реНрдн рд╕реЗ рджреВрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╣рдорд╛рд░реЗ рдкреБрдирд░реНрд╡рд┐рддреНрдд рдХреЗ рдмрд┐рдирд╛, рдХрд┐ рдкрд╣рд▓реЗ рдореЗрдВ, рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ "
Illegal invocation
" рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред
рдЕрдЧрд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ рдЙрддреНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдбрд┐рдмрдЧ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред рдпрд╣ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
(function () {
рдЕрдм рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЖрд░рдВрдн рдХреЗ рджреМрд░рд╛рди рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:
console.production = true;
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
Govnoosol
IE 8 рдФрд░ IE 9 рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╣рддреЗ рд╣реИрдВ:
alert(typeof console.log);
рд╡рд╣ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ "рдлрд╝рдВрдХреНрд╢рди", рдФрд░ рдЧрдзрд╛ - "рдСрдмреНрдЬреЗрдХреНрдЯ" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
object
рдореЗрдВ рдПрдХ
apply
рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмрдЧ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред рдереЛрдбрд╝рд╛ рд╕рд╛ рдЬрд╛рджреВ:
original[methodName].apply(original, arguments);
Firebug
рдлрд╛рдпрд░рдмрдЧ рдПрдХ рдорд╛рдирдХ рдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдлрд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛:
var original = global.console; var console = global.console = {};
рдирдП рддрд░реАрдХреЗ рдЬреЛрдбрд╝реЗрдВ
рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐
рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХреЛрдИ рд╕рдордп рдФрд░ рд╕рдордп рдкрджреНрдзрддрд┐ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдлрд╛рдпрд░рдмрдЧ рд╕реЗ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ:
рдЕрдм рддреЛ рдЧрдзреЗ рднреА рд╕рдордп рдЧрд┐рдирдирд╛ рд╕реАрдЦ рдЧрдП рд╣реИрдВред
рд╣рдореЗрдВ рдорд┐рд▓рд╛ рдЕрдВрддрд┐рдо рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
(function () { var global = this; var original = global.console; if ('console' in global) delete global.console; var console = global.console = {}; console.production = false; if (original && !original.time) { original.time = function(name, reset){ if (!name) return; var time = new Date().getTime(); if (!console.timeCounters) console.timeCounters = {}; var key = "KEY" + name.toString(); if(!reset && console.timeCounters[key]) return; console.timeCounters[key] = time; }; original.timeEnd = function(name){ var time = new Date().getTime(); if(!console.timeCounters) return; var key = "KEY" + name.toString(); var timeCounter = console.timeCounters[key]; if (timeCounter) { var diff = time - timeCounter; var label = name + ": " + diff + "ms"; console.info(label); delete console.timeCounters[key]; } return diff; }; } var methods = ['assert', 'count', 'debug', 'dir', 'dirxml', 'error', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'trace', 'warn']; for (var i = methods.length; i--;) { (function (methodName) { console[methodName] = function () { if (original && methodName in original && !console.production) { Function.prototype.apply.call(original[methodName], original, arguments); } }; })(methods[i]); } })();
рдЕрдм рдХрдВрд╕реЛрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпреБрджреНрдз рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдХреНрд╖рдо рдФрд░ IE рдореЗрдВ рд╕рдордп рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ)
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреЛрдб рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ LGPL / MIT рд╣реИ, рдкрд╛рда рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕
CC BY 3.0 рд╣реИрдЧрд┐рддреБрдм:
github.com/theshock/console-cap