Искам да стартирам проста функция на 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; } );
Лично аз смятам, че поставянето на повиквания на javascript в тага HREF е досадно. Обикновено не обръщам внимание на това дали нещо е връзка с javascript или не, а често пъти искам да отварям нещата в нов прозорец. Когато се опитам да направя това с един от тези видове връзки, получавам празна страница без нищо на нея и javascript в лентата за местоположение. Това обаче се заобикаля донякъде чрез използване на onlick.