Bu JavaScript break konsol mi?
Sadece bazı JavaScript şeyler google chrome (istemiyorum deneyin diğer tarayıcılar için şimdi, bunu gerçekten yapmak gerçek hasar) ve emin değilim neden bu fıstıklı mola benim konsol.
>var x = "http://www.foo.bar/q?name=%%this%%";
<undefined
>x
X (enter) durur konsol sonra... basit bir yaptığımda krom ve şimdi yeniden başladım
console.clear();
Ben vermiÅŸ
Console was cleared
Ve takas konsol değil. Şimdi benim komut konsolu.günlük kayıt ve neler olduğunu merak ediyorum. Çift yüzde ilgisi var 99% emin işaretleri ( % ).
Düzeltmek için nasıl herkes yanlış ya da daha iyisi ne yaptım biliyor musun, bu konsolun?
A bug report for this issue has been filed here.
Edit: çok aptal Hissediyorum, ama günlük kontrol Korumak zorundaydım... konsol takas değildi.
CEVAP
Yorumlarda anlatıldığı gibi, aslında bu soruna neden olan bir dize oluşturmak için birçok farklı yolu vardır, ve çoğu durumda, iki yüzde işaretleri olması gerekli değildir.
http://example.com/%
http://%%%
http://ab%
http://«
http://%zz
Ancak, değil sadece varlığının yüzde işareti, keser, Krom konsol olarak ne zaman giriyoruz aşağıdaki iyi biçimli URL, konsol devam etmek için çalışmanın gerektiği ve üretir tıklanabilir bir bağlantı.
http://ab cd
Ayrıca, dizeleri http://%
http://%%
de baskı düzgün, beri Krom olmaz otomatik bağlantı URL-link dize sürece http://
bunu izleyen en az 3 karakter.
Burada sorun, hatalı biçimlendirilmiş bir URL kod çözme işlemi konsol olası bir URL dize bağlama işlemi olması gerektiğini açıklamıştır. Hatırladığım JavaScript fonksiyonu decodeURI
atar bir özel durum ise, belirli bir hatalı biçimlendirilmiş bir URL, ve o zamandan beri Chrome Geliştirici Araçları büyük ölçüde yazılı JavaScript, acaba bu sorunun olduğunu açıkça çökmesini geliştirici konsolu?
Bu teoriyi test etmek için, Eğer herhangi bir hata kaydediliyordu görmek için komut bağlantı, Krom koştum.
Gerçekten de, eğer hatalı biçimlendirilmiş bir URL (yani decodeURI('http://example.com/%')
) decodeURI
kaçtın bakalım aynı hatayı konsola basıldığını:
[4810:1287:0107/164725:HATA:KONSOL(683)] "Yakalanmamış Urıerror: URI", kaynak: chrome-devtools://devtools/bundled/devtools.js (683) . hatalı
Bu yüzden, Krom URL chrome-devtools://devtools/bundled/devtools.js
açtım, ve on line 683, ben aşağıdaki bulundu.
{var parsedURL=new WebInspector.ParsedURL(decodeURI(url));var origin;var folderPath;var name;if(parsedURL.isValid){origin=parsedURL.scheme "://" parsedURL.host;if(parsedURL.port)
, decodeURI(url)
herhangi bir hata denetimi olmadan URL çağrıldığını gördüğümüz gibi, böylece istisna atma ve geliştirici konsol kilitleniyor.
Gerçek bir düzeltme, bu sorunu gelecek gelen ekleme hata işleme için Krom konsol kodu, ama bu arada, bir şekilde engellemek için sorun olacağını sarma dize karmaşık bir veri türü gibi bir dizi önlemek ayrıştırılırken günlüğü.
var x = "http://example.com/%";
console.log([x]);
Neyse ki, kırık sorunu sekme kapatıldığında kalıcı değil konsol ve diğer sekmeleri etkilemez.
Güncelleme:
Görünüşe göre, sorun olursa Korumak Günlüğü işaretli ise sekmeler ve yeniden boyunca devam edebilir. Eğer bu sorunu yaşıyorsanız bu işaretini kaldırın.
Güncelleme 2:
Krom 40, bu sorun giderilmiÅŸtir.
Nasıl Google hata ayıklama iletileri y...
Nasıl hata iletisi konsol baskı yapmam...
JavaScript jQuery dahil Konsol...
JavaScript renk konsol...
Google Chrome Konsol tüm JavaScript de...