Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнить событие после нажатия на ссылку до перехода (https://javascript.ru/forum/misc/47224-vypolnit-sobytie-posle-nazhatiya-na-ssylku-do-perekhoda.html)

FRIE 14.05.2014 17:02

Выполнить событие после нажатия на ссылку до перехода
 
После нажатия на ссылку, сначала должен выполниться определённый скрипт, а только за тем переход.
Как такое сделать?

Tek 15.05.2014 11:15

function Do(event) {
  //Отменяем действие по умолчанию(переход по ссылке)
  event = event || window.event
  if (event.preventDefault) {  // если метод существует
    event.preventDefault();
  } else { // вариант IE<9:
    event.returnValue = false;
  }
  //Тут выполняем все нужные вам действия

 //Делаем редирект
 document.location.href = 'http://google.ru';
}

Aetae 15.05.2014 11:28

На самом деле preventDefault не нужен, если после скрипта должен идти нормальный переход(и в скрипте нет ничего асинхронного).
Те просто:
link.addEventListener('mousedown',function(){
    //ваш код
},false)

Если заморачиваться, то надо бы ещё добавить listener на keydown и event.keyCode == код энтера, а также вариант с attachEvent для старых ie.

Но и так сойдёт.)


Часовой пояс GMT +3, время: 03:35.