SORU
4 NİSAN 2011, PAZARTESİ


konsol.günlük.9 çalışan geçerli değil

Yeniden icat ettim gibi görünüyor tekerlek, ama nedense bu, Internet Explorer çalışmıyor 9, ama IE6 yapar.

function debug()
  if(!window.console) { 
    window.console = { log: function() { /* do something */ } };
  }
  console.log.apply(console, arguments);
}

İlgili: Apply() question for javascript

F12 hata Ayıklayıcı bu söyledi "" (konsolu.nesne günlük) yöntemi desteklemiyor ''uygulayın. Hatta bir fonksiyonu olarak tanınmış değil mi? Başka işaretçileri veya fikirler?

CEVAP
4 NİSAN 2011, PAZARTESİ


Cevap ikinci bölümü I gave recently de bu soruyu cevaplar. Bu bir kopyası olarak görmüyorum, kolaylık sağlamak için, buraya yapıştırın verdim.:

Konsol nesne herhangi bir standart bir parçası değildir ve Belge Nesne Modeli için bir uzantısıdır. Diğer DOM nesneleri gibi, bir ana nesne olarak kabul edilir ve Nesne, ne de işlevinden yöntemleri devralır, ECMA işlevleri ve nesneleri yerli gibi yapmak için gerekli değildir. Bu nedenle uygulamak ve bu yöntemler üzerinde tanımsız arayın. IE 9, en DOM nesneleri yerli ECMA türlerinden devralan için geliştirildi. Geliştirici Araçları IE uzantısı, bir yerleşik uzantısı olsa) kabul edilir gibi, onlar açıkça DOM geri kalanı gibi aynı gelişmeler almadı.

Ne, hala İşlevini kullanabilirsiniz.küçük bir bağlama yöntemleri konsol prototip yöntemleri() magic:

var log = Function.prototype.bind.call(console.log, console);
log.apply(console, ["this", "is", "a", "test"]);
//-> "thisisatest"

console tüm yöntemleri tamir edebilirsinIE 9 içinaynı şekilde:

if (Function.prototype.bind && window.console && typeof console.log == "object"){
    [
      "log","info","warn","error","assert","dir","clear","profile","profileEnd"
    ].forEach(function (method) {
        console[method] = this.bind(console[method], console);
    }, Function.prototype.call);
}

Bu "konak" konak "fonksiyonları. aramayı yerli fonksiyonları ile" fonksiyonları değiştirir Kodunuzda Function.prototype.bind Array.prototype.forEach uyumluluk uygulamaları dahil olmak üzere Internet Explorer 8'de bu çalışma alabilirsiniz, veya yukarıda yeniden yazma teknikleri bu yöntem tarafından kullanılan dahil Pasajı.

Ayrıca Bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DominicFear

    DominicFear

    30 Kasım 2006
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • Pepsi

    Pepsi

    1 Kasım 2005