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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць