Czy istnieje rejestrator konsoli dla IE? Próbuję zarejestrować kilka testów / potwierdzeń na konsoli, ale nie mogę tego zrobić w IE.
Czy istnieje rejestrator konsoli dla IE? Próbuję zarejestrować kilka testów / potwierdzeń na konsoli, ale nie mogę tego zrobić w IE.
Odpowiedzi:
Dostęp do konsoli skryptów IE8 można uzyskać, uruchamiając „Narzędzia programistyczne” (F12). Kliknij kartę „Skrypt”, a następnie kliknij opcję „Konsola” po prawej stronie.
Z poziomu kodu JavaScript możesz wykonać jedną z następujących czynności:
<script type="text/javascript">
console.log('some msg');
console.info('information');
console.warn('some warning');
console.error('some error');
console.assert(false, 'YOU FAIL');
</script>
Możesz również wyczyścić konsolę, wywołując console.clear()
.
UWAGA: Wygląda na to, że musisz najpierw uruchomić Narzędzia programistyczne, a następnie odświeżyć stronę, aby to zadziałało.
console.log()
ulegnie awarii. Zawsze chroń swoje połączenia za pomocąwindow.console && console.log('stuff');
Od wersji 8 Internet Explorer ma własną konsolę, podobnie jak inne przeglądarki. Jeśli jednak konsola nie jest włączona, console
obiekt nie istnieje i wywołanie console.log
spowoduje zgłoszenie błędu.
Inną opcją jest użycie log4javascript (pełne ujawnienie: napisane przeze mnie), który ma własną konsolę logowania, która działa we wszystkich popularnych przeglądarkach, w tym IE> = 5, plus opakowanie dla własnej konsoli przeglądarki, które pozwala uniknąć problemu niezdefiniowanego console
.
jeśli w końcu wydasz console.log()
polecenia do produkcji, musisz wprowadzić jakąś poprawkę dla IE - ponieważ console
jest ona zdefiniowana tylko w F12
trybie debugowania.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[oczywiście usuń ostrzeżenie (msg); oświadczenie po zweryfikowaniu, że działa]
Zobacz także „konsola” to niezdefiniowany błąd przeglądarki Internet Explorer, aby uzyskać informacje na temat innych rozwiązań i szczegółowych informacji
Istnieje Firebug Lite, który zapewnia wiele funkcji Firebug w IE.
W swojej książce „Secrets of Javascript Ninja” John Resig (twórca jQuery) ma naprawdę prosty kod, który będzie obsługiwał problemy z konsolą.log w różnych przeglądarkach. Wyjaśnia, że chciałby mieć komunikat dziennika, który działa we wszystkich przeglądarkach, a oto jak go zakodował:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
brakuje w tym fragmencie. :)
W przypadku IE8 lub obsługi konsoli ograniczonej do console.log (bez debugowania, śledzenia, ...) możesz wykonać następujące czynności:
Jeśli console LUB console.log undefined: Utwórz fikcyjne funkcje dla funkcji konsoli (śledzenie, debugowanie, dziennik, ...)
window.console = {
debug : function() {}, ...};
W przeciwnym razie, jeśli zdefiniowano console.log (IE8) ORAZ console.debug (jakikolwiek inny) nie jest zdefiniowany: przekieruj wszystkie funkcje logowania do console.log, pozwala to zachować te dzienniki!
window.console = {
debug : window.console.log, ...};
Nie jestem pewien co do obsługi assert w różnych wersjach IE, ale wszelkie sugestie są mile widziane.
Możesz użyć opakowania między przeglądarkami: https://github.com/MichaelZelensky/log.js
W przypadku starszej wersji IE (przed IE8) nie jest łatwo zobaczyć dziennik konsoli w IE Developer Toolbar, po spędzeniu godzin na badaniu i wypróbowaniu wielu różnych rozwiązań, w końcu następujący pasek narzędzi jest dla mnie świetnym narzędziem:
Główną zaletą tego jest zapewnienie konsoli dla IE6 lub IE7, dzięki czemu można zobaczyć jaki jest błąd (w logu konsoli)
Zawsze robiłem coś takiego:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
i od tego momentu po prostu zawsze używaj log (...), nie bądź zbyt wyszukany używając konsoli. [ostrzeż | błąd | i tak dalej], po prostu zachowaj prostotę. Zwykle wolę proste rozwiązania niż wyszukane biblioteki zewnętrzne, zazwyczaj się to opłaca.
prosty sposób na uniknięcie problemów z IE (z nieistniejącym console.log)
console.log()
działa tylko wtedy, gdy otwarte jest narzędzie deweloperskie IE (tak, IE jest kiepski). patrz stackoverflow.com/questions/7742781/…