IE için bir konsol kaydedici var mı? Konsola bir dizi test / iddia kaydetmeye çalışıyorum ancak bunu IE'de yapamıyorum.
IE için bir konsol kaydedici var mı? Konsola bir dizi test / iddia kaydetmeye çalışıyorum ancak bunu IE'de yapamıyorum.
Yanıtlar:
"Geliştirici Araçları" nı (F12) başlatarak IE8 komut dosyası konsoluna erişebilirsiniz. "Komut Dosyası" sekmesini ve ardından sağdaki "Konsol" u tıklayın.
JavaScript kodunuzun içinden aşağıdakilerden herhangi birini yapabilirsiniz:
<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>
Ayrıca, arayarak Konsolu temizleyebilirsiniz. console.clear()
.
NOT: Görünüşe göre, bunun çalışması için önce Geliştirici Araçlarını başlatmanız, ardından sayfanızı yenilemeniz gerekir.
console.log()
kıracak. Çağrılarınızı her zaman ile koruyunwindow.console && console.log('stuff');
Sürüm 8'den bu yana, Internet Explorer diğer tarayıcılar gibi kendi konsoluna sahiptir. Bununla birlikte, konsol etkin değilse, console
nesne mevcut değildir ve bir çağrı console.log
bir hata verir.
Diğer bir seçenek de , IE> = 5 dahil olmak üzere tüm ana tarayıcılarda çalışan kendi günlükleme konsoluna sahip log4javascript (tam açıklama: benim tarafımdan yazılmıştır) ve ayrıca tarayıcının kendi konsolu için tanımsız bir sorunu ortadan kaldıran bir sarmalayıcı kullanmaktır console
.
Eğer console.log()
üretim için komutları yayınlamayı bitirirseniz, IE için bir çeşit düzeltme yapmanız gerekir - çünkü console
sadece F12
hata ayıklama modunda tanımlanır .
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[uyarıyı açıkça kaldırın (msg); çalıştığını doğruladıktan sonra ifade]
Diğer çözümler ve daha fazla ayrıntı için ayrıca bkz. 'Konsol' Internet Explorer için tanımsız bir hata
Orada Kundakçı Lite IE Kundakçı işlevselliği çok verir.
John Resig (jQuery'nin yaratıcısı) "Secrets of Javascript Ninja" adlı kitabında, tarayıcılar arası console.log sorunlarını çözecek gerçekten basit bir koda sahiptir. Tüm tarayıcılarla çalışan bir günlük mesajına sahip olmak istediğini ve bunu şu şekilde kodladığını açıklıyor:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
Bu pasajda bir eksiklik var . :)
IE8 veya konsol desteği için console.log ile sınırlıdır (hata ayıklama, izleme, ... yok) şunları yapabilirsiniz:
Console VEYA console.log tanımsız ise: Konsol fonksiyonları için sahte fonksiyonlar oluşturun (izleme, hata ayıklama, günlük, ...)
window.console = {
debug : function() {}, ...};
Aksi takdirde, console.log tanımlanırsa (IE8) VE console.debug (başka herhangi biri) tanımlanmazsa: tüm günlük işlevlerini console.log'a yönlendirin, bu, bu günlüklerin tutulmasına izin verir!
window.console = {
debug : window.console.log, ...};
Çeşitli IE sürümlerindeki assert desteğinden emin değilim, ancak her türlü öneriye açığız.
Çapraz tarayıcı sarmalayıcıyı kullanabilirsiniz: https://github.com/MichaelZelensky/log.js
IE'nin eski sürümü için (IE8'den önce), IE Developer Toolbar'da konsol günlüğünü görmek kolay değildir, saatler boyunca araştırma yaptıktan ve birçok farklı çözümü denedikten sonra, son olarak aşağıdaki araç çubuğu benim için harika bir araçtır:
Bunun ana avantajı, IE6 veya IE7 için bir konsol sağlamaktır, böylece hatanın ne olduğunu görebilirsiniz (konsol günlüğünde)
Ben hep böyle bir şey yapıyordum:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
ve bu noktadan sonra her zaman log (...) kullanın, konsolu kullanmaktan çok hoşlanmayın. [warn | error | vb.], sadece basit tutun. Genellikle basit çözümü tercih ederim, sonra harici kitaplıkları tercih ederim, genellikle karşılığını verir.
IE ile ilgili sorunları önlemenin basit yolu (mevcut olmayan console.log ile)
console.log()
yalnızca IE'nin geliştirme aracı açıkken çalışır (evet, IE berbattır). bakınız stackoverflow.com/questions/7742781/…