ненавязчивый Javascript
Рекомендуется добавлять методы обработки событий в ссылки.
Функция verify () создает диалоговое окно, которое вы описали, и возвращает true или false в зависимости от выбора пользователя.
Методы-обработчики событий в ссылках имеют специальное поведение: они убивают действие ссылки, если возвращают false.
var link = document.getElementById('confirmToFollow');
link.onclick = function () {
return confirm("Are you sure?");
};
Если вы хотите, чтобы ссылка на требовала JavaScript , HTML-код необходимо отредактировать. Удалить ссылку:
<a href="#" id="confirmToFollow"...
Вы можете явно указать назначение ссылки в обработчике событий:
var link = document.getElementById('confirmToFollow');
link.onclick = function () {
if( confirm("Are you sure?") ) {
window.location = "http://www.stackoverflow.com/";
}
return false;
};
Если вы хотите, чтобы один и тот же метод вызывался на нескольких ссылках, вы можете получить список ссылок, который вам нужен, и применить метод к каждой из них, когда будете выполнять цикл по списку узлов:
var allLinks = document.getElementsByTagName('a');
for (var i=0; i < allLinks.length; i++) {
allLinks[i].onclick = function () {
return confirm("Are you sure?");
};
}
Существуют и другие варианты этой же идеи, например использование имени класса для определения того, какие ссылки будут прослушивать метод, и передача уникального местоположения в каждое на основе некоторых других критериев. Они шесть из одного, полдюжины из другого.
Альтернативные подходы (недопустимые практики):
Один обескураженный прием - это присоединение метода с помощью атрибута onclick :
<a href="mypage.html" onclick="...
Еще один обескураженный прием - установить атрибут href для вызова функции:
<a href="javascript: confirmLink() ...
Обратите внимание, что эти обескураженные практики - все рабочие решения.