12 of 17 menu

JavaScript'te Bağlantı Engelleme Hatası

Diyelim ki bir bağlantımız var:

<a href="">link</a>

Bağlantımızı bir değişkene alalım:

let link = document.querySelector('a');

Bağlantımıza bir tıklama olay işleyicisi ekleyelim. Sayfanın yeniden yüklenmesini önlemek için bağlantıya geçişi iptal edelim:

link.addEventListener('click', function(event) { console.log(this.textContent); event.preventDefault(); });

Kendimizi beklenmeyen davranışlardan tamamen korumuş gibi görünebiliriz. Aslında durum böyle değil. Olay şu ki, bir sözdizimi hatası oluştuğunda JavaScript kodu çalıştırılmaz, bağlantı engelleme işe yaramaz ve bağlantıya geçiş gerçekleşir.

Bu durumda, ne kodun çalıştırılmasının sonucunu ne de konsoldaki hatayı göremeyiz, çünkü sayfa yeniden yüklenir. Kasta koddaki bir hatayı oluşturalım ve pratikte görelim:

link.addEventListener('click', function(event) { thiss.textContent = 'text'; // sözdizimi hatası event.preventDefault(); });

Böyle bir sorunun karakteristik bir işareti vardır: bağlantıya tıklama anında konsola bakarsak, konsolda kırmızı hatayı anlık olarak görürüz, bu neredeyse anında kaybolur.

Elbette, hata mesajını okumak için zamanımız olmaz, bu da onu bulmayı önemli ölçüde zorlaştırır. Ancak, zekice bir yöntem var. Bağlantının href'ine bir kare işareti (#) koymak gerekir. Bu durumda bağlantıya geçiş gerçekleşmez ve konsola fırlatılan hatayı görürüz:

<a href="#">link</a>
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet