Bu JavaScript break konsol mi? | Netgez.com
SORU
7 Ocak 2015, ÇARŞAMBA


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
8 Ocak 2015, PERÅžEMBE


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.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NÄ°SAN 2010
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • FF Radioo

    FF Radioo

    14 ÅžUBAT 2007