2013-01-04 16 views
13

Yazmadığım çok büyük ve kafa karıştırıcı bazı JavaScript dosyalarıyla çalışıyorum. Bazen bir uyarı ortaya çıkar ama nereden geldiğini bilmiyorum.Bir uyarı kutusunun kaynağını elde etmenin bir yolu var mı?

Uyarıdaki metnin tüm dosyalarını arayabilirsiniz, ancak bu metin dinamikse işe yaramaz.

Bir uyarıyı engellemek için bir kesme noktası belirlemenin bir yolu var mı?

+1

dosyaları aranıyor özellikle bir uyarının çok zor değildir. Gerçekten çok kullanılmıyor (çoğunlukla javascript uyarıları rahatsız edici olduğu için). Linux kullanıyorsanız grep kullanın. Mac'inizdeyseniz grep'i kullanın. Windows kullanıyorsanız, Linux'u yükleyin. –

cevap

30

:

window.alert = function() { 
    debugger; 
} 

debugger herhangi ayıklama işlevselliği çağıran bir ifadedir. Geliştirici araçları açıkken, alert çağrıldığında otomatik olarak bir kesme noktasına vuracaksınız. Ardından çağrı yığınının, özel alert işlevini tam olarak neyin aradığını görmek için inceleyebilirsiniz.

+1

Bu güzel, başparmak yukarı – kidwon

+0

Dude, bu iyi, bilmiyordum ... –

3

Size yardımcı olabilir veya olmayabilir, ancak istediğiniz her şeyi yapmak için alert işlevinin üzerine yazabilirsiniz. Örneğin, uyarı kutuları yerine, iletiyi konsola kaydedebilirsiniz. HTML'nize çok üstünde

window.alert = function(msg) { 
    console.log(msg); 
} 
alert('test'); 
3

Chrome'u F12 anahtarında açın ve Sources'a gidin. Sonra bir komut dosyası Ctrl+F seçin ve uyarı arayın.

3

İstediğiniz satırın üzerine kesme noktası koyabilirsiniz Brian Glaz ile aynı fikirdeyim, ancak daha fazla ayrıntı almak için (hat numarası), bir şeyi uyarırken ve konsolda hatayı verirken bir hata atmayı deneyebilirsiniz. Bu şekilde, konsol sizi uyarı işlevinin çağrıldığı doğru satır numarasına yönlendirecektir.

koyun bu belgenin üst kısmında pasajı ve denemeye:

var originalAlert = window.alert; 
window.alert = function(){ 
    try{ 
     throw new Error('alert was called'); 
    } catch(e){ 
     console.warn(e); 
    } 
    return originalAlert.apply(window, arguments); 
}