Вход

Просмотр полной версии : Выполнить событие после нажатия на ссылку до перехода


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',fun ction(){
//ваш код
},false)
Если заморачиваться, то надо бы ещё добавить listener на keydown и event.keyCode == код энтера, а также вариант с attachEvent для старых ie.

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