12 of 17 menu

Грешка при забрана за следење на врска во JavaScript

Да претпоставиме дека имаме врска:

<a href="">link</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 = 'text'; // синтаксна грешка event.preventDefault(); });

Овој проблем има карактеристичен признак: ако се гледа во конзолата во моментот на кликнување на врската, за миг ќе видиме црвена грешка во конзолата, која речиси веднаш исчезнува.

Се разбира, текстот на грешката нема да успееме да го прочитаме, што значително ја отежнува нејзината локализација. Сепак, постои паметен трик. Треба во href на врската да се стави решетка. Во овој случај, нема да се случи следење на врската и ќе ја видиме фрлената грешка во конзолата:

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