Co je to Chybová konzola a jak ji vyvolat
Chybová konzola je nástroj dostupný ve většině aplikací založených na Mozille, který umožňuje uživatelům a zejména programátorům zobrazovat chyby, které nastali na webové stránce či přímo v chrome aplikace. Chybová konzola zobrazuje chyby a varování související s JavaScriptem a CSS, nebo různé chybové hlášky z kódu aplikace. V konzoli lze také vyhodnocovat JavaScriptové výrazy. Dříve, před Firefoxem 2.0 (Gecko 1.8.1), se tato konzola nazývala Konzola JavaScriptu (viz chyba 265871).
Konzola se dá vyvolat pomocí nabídky Nástroje > Chybová konzola.
Její největší část zabírá výpis samotných chybových hlášení, která mají různé úrovně závažnosti. Hlášení v jednotlivých úrovních můžete vyfiltrovat pomocí tlačítek Vše, Chyby, Varování a Zprávy. Pod tlačítky se nachází oblast, do které můžete zadat libovolný JavaScriptový výraz a po stisknutí tlačítka Vyhodnotit se ve výpisu chybových hlášení zobrazí jeho hodnota. Výraz je vyhodnocován v kontextu prázdného dokumentu – nelze se tedy odvolávat například na objekty právě zobrazené stránky.
<center> </center>V případě, že budete používat Chybovou konzolu častěji, doporučujeme vám podívat se na rozšíření Console2, které poskytuje lepší náhradu za Chybovou konzolu opravující některé její nedostatky, jako jsou možnost lepšího filtrování chybových hlášení, či blokace chybových hlášení v závislosti na doméně webového serveru.
Typy chybových hlášení
Chyby
- Syntaktické chyby JavaScriptu vzniklé při parsování.
- Chyby vzniklé za běhu skriptu – přístup k nedefinovaným proměnným, volání neexistujících metod, atd.
- Chyby zabezpečení (stránka se pokusí provést operaci, na kterou nemá dostatečná oprávnění)
Varování
- Varování striktního módu (viz níže)
- Chyby v CSS (pouze v Gecku 1.8 a vyšším)
- Informace o špatném MIME-typu načítaných CSS souborů, pokud je stránka ve standardním módu vykreslování.
- Upozornění na použití nestandardních či nedoporučovaných konstrukcí – například
document.all
(viz článek o nedetekované podpoře document.all).
Zprávy
- Výsledky výrazů zadaných do konzole k vyhodnocení
- Vlastní ladicí zprávy (hodí se například při tvorbě rozšíření).
Nastavení konzoli
Chybovou konzolu lze nastavit pomocí několika voleb v about:config
.
-
javascript.options.strict
- Zapíná takzvaný striktní mód, kdy je konzola "přísnější" a upozorňuje i na chyby, které za normálních okolností toleruje. Tyto chyby neznemožňují chod skriptu, ale většinou svědčí o problému v jeho logice. Více informací o striktním módu najdete v článku Tackling JavaScript strict warnings.
-
javascript.options.showInConsole
- Zobrazuje i chyby v "chrome", tedy ve skriptech uživatelského rozhraní programu a v rozšířeních. Doporučujeme zapnout, pokud vyvíjíte nějaké rozšíření či nějak upravujete uživatelské rozhraní aplikace.
Tip: Při ladění webových aplikací je někdy užitečné mít Chybovou konzolu stále "při ruce". To je obtížné, pokud ji máte otevřenu v samostatném okně. Následujícím postupem si můžete vytvořit záložku, pomocí které se bude konzola otevírat v postranní liště.
- Zvolte menu Záložky > Správce záložek...
- Přejděte do složky, kde chcete záložku vytvořit a zvolte tlačítko Nová záložka...
- Jako Název vyplňte popis záložky (např. "Chybová konzola"), jako Adresa zadejte
chrome://global/content/console.xul
a nezapomeňte zaškrtnout volbu Nahrát tuto záložku v postranní liště. - Po kliknutí na OK bude vytvořena záložka, které otevře Chybovou konzolu v postranní liště.
Přístup ke konzoli pomocí XPCOM a DOMu
K informacím zobrazovaným v Chybové konzoli je možné přistupovat a manipulovat s nimi pomocí nsIConsoleService. Nejjednoduší cesta jak vypsat nějaké chybové hlášení do konzole z JavaScriptu je použít Components.utils.reportError nebo dump().
Následující kód ukazuje, jak takovou ladicí zprávu vypsat (z bezpečnostních důvodů kód nelze spustit ze stránky zobrazené prostřednictvím protokolu http:
, ale třeba z file:
nebo chrome:
už ano):
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var console = Components.classes['@mozilla.org/consoleservice;1']; console = console.getService(Components.interfaces.nsIConsoleService); console.logStringMessage("Zprava:\nNazdar svete!");
Pokud byste rádi vyvolali Chybovou konzolu z vaší aplikace, můžete použít funkci toJavaScriptConsole()
.