Функция JavaScript в href срещу onclick

Искам да стартирам проста функция на JavaScript при щракване без пренасочване.

Има ли някаква разлика или предимство между поставянето на извикването на JavaScript в атрибута href (като този:

<a href="javascript:my_function();window.print();">....</a>

) в сравнение с поставянето му в атрибута onclick (обвързване със събитието onclick)?

Решение

Поставянето на функцията onclick в рамките на href би обидило онези, които твърдо вярват в разделението на съдържанието от поведението/действието. Аргументът е, че вашето html съдържание трябва да остане фокусирано единствено върху съдържанието, а не върху представянето или поведението.

Типичният път в наши дни е да се използва библиотека на javascript (напр. jquery) и да се създаде обработчик на събития, като се използва тази библиотека. Той би изглеждал по следния начин:

$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Коментари (6)

В допълнение към всичко това, href се показва в лентата на състоянието на браузъра, а onclick не. Мисля, че не е'удобно за потребителя да се показва javascript код там.

Коментари (0)

Лично аз смятам, че поставянето на повиквания на javascript в тага HREF е досадно. Обикновено не обръщам внимание на това дали нещо е връзка с javascript или не, а често пъти искам да отварям нещата в нов прозорец. Когато се опитам да направя това с един от тези видове връзки, получавам празна страница без нищо на нея и javascript в лентата за местоположение. Това обаче се заобикаля донякъде чрез използване на onlick.

Коментари (0)