2011-08-16 11 views
9

Bir şekilde üzerine yazıldıktan sonra console.log dosyasına erişim mümkün mü?Üzerine yazdıktan sonra window.console erişim

window.console = { log: function (msg) { alert(msg); }, /* etc... */ }; 

Orijinal konsol.log işlevselliğini yeniden kazanmak mümkün olabilir mi?

+1

Orijinali nedir? Kundakçı? –

cevap

17

Konsolu üzerine yazmadan önce yedekleyebilirsiniz.

Daha sonra oldConsole değişkenini kullanabilirsiniz.

oldConsole.log('test'); 

bunu yedeklemek olamaz varsa, bir iFrame oluşturun ve sonra oradan konsolu (bu tüm tarayıcılarda çalışmayabilir) çalabilir:

var i = document.createElement('iframe'); 
i.style.display = 'none'; 
document.body.appendChild(i); 
window.console = i.contentWindow.console; 

Demo: http://jsfiddle.net/jcG7E/2

+0

@Downvoter: Neden bir downvote? –

+1

Aşağıdaki yanıt (delete window.console) daha kullanışlıdır. Bu sorunun kabul edilen cevabı olması gerektiğini söyleyebilirim. – noah

+0

@RocketHazmat bir iframe'den konsol çalma fikri oldukça hoş bir hack! –

-1

Bu mümkün değil. Kim yazmış ise hariç, geri almak için bazı kodları dahil etmiştir.

0
var customLog = { 
    oriLog: '', 
    Log: function(){ 
     // create string to display 
     var displaystring = ''; 
     for (var i = 0, len = arguments.length; i < len; i++) { 
      displaystring += arguments[i]; 
      if (i + 1 != len) 
       displaystring += ', '; 
     } 
     alert(displaystring); 
     customLog.oriLog(arguments); 
    } 
} 
window.onload = function(){ 
    if (console != null) { 
     customLog.oriLog = console.log; 
     console.log = customLog.Log; 
    } 

} 
5

Düzenleme (2017/04/08): Bu tavsiye Firefox 52 ve Chrome 57 console artık pencere prototip üzerinde tanımlanır ve silme gerçekten silmek olacak, eski.


En azından Firefox ve Chrome ile tanımlanan console nesne ile, sadece orijinal bir geri yazılır özelliği silebilirsiniz:

window.console = {}; 
delete window.console; 
window.console.log("This works!"); 

Bu console mülkiyet üzerinde tanımlı sanki çalışır window nesnesinin prototipi - bunun dışında tarayıcılar burada sihir yapıyorlar.

+0

Bu, Chrome'un en son sürümünde çalışmıyor. – RelaXNow

+1

@RelaXNow: Gerçekten de, bu tavsiyenin süresi doldu. Buna bir not ekledim. –

İlgili konular