12 of 17 menu

Грешка забране праћења везе у 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>
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј