Niedawno w jednym z postów opisałem, jak można wykorzystać obiekt console do ułatwienia pracy z JavaScriptem. Wspomniałem tam, że obiekt ten nie jest standardowym obiektem JavaScript, a jest “dodawany” przez różne przeglądarki (lub dodatki do przeglądarek). W związku z tym może się zdarzyć, że nasza strona nie będzie działała na jakiejś przeglądarce.
Problem ten wystąpi np. w IE (bez włączonego IE Developer Tools), ale i na Firefoxie, jeżeli użytkownik nie ma Firebuga. Można jednak bardzo łatwo to naprawić tworząc własne, puste metody. Oczywiście nie doda to nam konsoli do przeglądarki, która jej nie obsługuje, ale strona nie będzie już zgłaszała błędów:
if (!window.console) console = {};
console.log = console.log || function(){};
console.warn = console.warn || function(){};
console.error = console.error || function(){};
console.info = console.info || function(){};
Często można znaleźć podobne skrypty mockujące cały obiekt console, jednak ja wolę takie rozwiązanie. Zdarzają się bowiem sytuacje, w których przeglądarka obsługuje obiekt console, ale nie wszystkie metody – np. time() w IE nawet przy włączonym IE Developer Tools.
Przy wersji testowej, skrypt taki zwykle dodaję na początku pliku jquery – mam wtedy pewność, że o nim nie zapomnę. O produkcji napiszę w kolejnym poście.
1 comment
Dzięki, przydało się
Comments are closed.