Apakah ada logger konsol untuk IE? Saya mencoba untuk mencatat banyak tes / pernyataan ke konsol tetapi saya tidak dapat melakukan ini di IE.
Apakah ada logger konsol untuk IE? Saya mencoba untuk mencatat banyak tes / pernyataan ke konsol tetapi saya tidak dapat melakukan ini di IE.
Jawaban:
Anda dapat mengakses konsol skrip IE8 dengan meluncurkan "Alat Pengembang" (F12). Klik tab "Script", lalu klik "Console" di sebelah kanan.
Dari dalam kode JavaScript Anda, Anda dapat melakukan salah satu dari berikut ini:
<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>
Selain itu, Anda dapat menghapus Konsol dengan menelepon console.clear()
.
CATATAN: Tampaknya Anda harus meluncurkan Alat Pengembang terlebih dahulu kemudian menyegarkan halaman Anda agar ini berfungsi.
console.log()
akan rusak. Selalu lindungi panggilan Anda denganwindow.console && console.log('stuff');
Sejak versi 8, Internet Explorer memiliki konsolnya sendiri, seperti browser lainnya. Namun, jika konsol tidak diaktifkan, console
objek tersebut tidak ada dan panggilan ke console.log
akan memunculkan kesalahan.
Pilihan lainnya adalah menggunakan log4javascript (pengungkapan penuh: ditulis oleh saya), yang memiliki konsol logging sendiri yang berfungsi di semua browser utama, termasuk IE> = 5, ditambah pembungkus untuk konsol browser itu sendiri yang menghindari masalah yang tidak ditentukan console
.
jika Anda akhirnya melepaskan console.log()
perintah ke produksi, Anda perlu melakukan semacam perbaikan untuk IE - karena console
hanya ditentukan saat dalam F12
mode debugging.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[jelas menghapus peringatan (msg); pernyataan setelah Anda memverifikasinya]
Lihat juga 'konsol' adalah kesalahan tidak ditentukan untuk Internet Explorer untuk solusi lain dan detail lebih lanjut
Ada Firebug Lite yang memberikan banyak fungsi Firebug di IE.
Dalam bukunya, "Secrets of Javascript Ninja", John Resig (pembuat jQuery) memiliki kode yang sangat sederhana yang akan menangani masalah konsol.log lintas-browser. Dia menjelaskan bahwa dia ingin memiliki pesan log yang berfungsi dengan semua browser dan inilah cara dia mengkodekannya:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
hilang di potongan itu. :)
Untuk IE8 atau dukungan konsol yang terbatas pada console.log (tanpa debug, jejak, ...) Anda dapat melakukan hal berikut:
Jika konsol ATAU console.log tidak ditentukan: Buat fungsi tiruan untuk fungsi konsol (jejak, debug, log, ...)
window.console = {
debug : function() {}, ...};
Lain jika console.log didefinisikan (IE8) DAN console.debug (lainnya) tidak ditentukan: alihkan semua fungsi logging ke console.log, ini memungkinkan untuk menyimpan log tersebut!
window.console = {
debug : window.console.log, ...};
Tidak yakin tentang dukungan assert di berbagai versi IE, tetapi saran apa pun diterima.
Anda dapat menggunakan pembungkus lintas-browser: https://github.com/MichaelZelensky/log.js
Untuk versi IE yang lebih lama (sebelum IE8), tidak mudah untuk melihat log konsol di Bilah Alat Pengembang IE, setelah menghabiskan berjam-jam meneliti dan mencoba berbagai solusi, akhirnya, bilah alat berikut adalah alat yang hebat untuk saya:
Keuntungan utama dari ini adalah menyediakan konsol untuk IE6 atau IE7, sehingga Anda dapat melihat apa saja kesalahannya (di log konsol)
Saya selalu melakukan sesuatu seperti ini:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
dan dari situ selalu gunakan log (...), jangan terlalu asyik menggunakan console. [warn | error | dan sebagainya], sederhanakan. Saya biasanya lebih suka solusi sederhana daripada perpustakaan eksternal yang mewah, biasanya itu terbayar.
cara sederhana untuk menghindari masalah dengan IE (dengan console.log yang tidak ada)
console.log()
hanya bekerja ketika alat pengembang IE terbuka (ya IE jelek). lihat stackoverflow.com/questions/7742781/…