Грешка забране праћења везе у JavaScript-у
Претпоставимо да имамо везу:
<a href="">линк</a>
Дохватимо нашу везу у променљиву:
let link = document.querySelector('a');
Додајмо нашој вези додавач за догађај клика. При томе ћемо спречити праћење везе да би избегли поновно учитавање странице:
link.addEventListener('click', function(event) {
console.log(this.textContent);
event.preventDefault();
});
Чини се да смо се у потпуности заштитили од неочекиваног понашања. Међутим, то није тако. Наиме, при појави синтаксне грешке JavaScript код једноставно неће бити извршен, блокирање везе неће деловати, и извршиће се праћење везе.
У том случају нећемо видети ни резултат извршавања кода, ни грешку у конзоли, јер ће се страница поново учитати. Хајде да намерно направимо грешку у коду и уверимо се у пракси:
link.addEventListener('click', function(event) {
thiss.textContent = 'текст'; // синтаксна грешка
event.preventDefault();
});
Овај проблем има карактеристичан признак: ако гледамо у конзолу у тренутку клика на везу, на трен ћемо видети црвену грешку у конзоли, која ће готово одмах нестати.
Наравно, нећемо успети да прочитамо текст грешке,
што значајно отежава
њено проналажење. Међутим, постоји лукав трик. Потребно је
да у href везе ставимо хаш.
У том случају праћење везе се
неће десити и видећемо грешку
која је приказана у конзоли:
<a href="#">линк</a>