В настоящее время я создаю файл-браузер. Если пользователь нажимает на ссылку на файл, открывается небольшое окно и запрашивает параметры (например, загрузка и просмотр). Я сделал это, используя атрибут onclick. Если я нажму на ссылку, javascript будет выполнен, но после этого откроется url, указанный в href. То, что я пытаюсь сделать, - это: если вы нажмете на ссылку javascript, получите исполнение и в конце концов переадресуете. Но если ссылка правильно помечается, "место для ссылки на копии" должно быть доступно. Я собираюсь решить это, заблокировав скрипт пересылки. Таким образом, если ссылка получает rightclicked, javascript не выполняется, и вы можете скопировать местоположение ссылки. Но если вы оставите клик по ссылке, javascript будет выполнен, и ссылка не будет открыта. Возможно ли это с помощью javascript, или есть ли другой способ достижения такого поведения?
Html - Как запретить браузеру открывать ссылку, указанную в href?
Ответ 1
Чтобы предотвратить выполнение ссылки, одним из способов является возврат метода onclick false
.
Например:
<a href="http://..." onclick="return clickfunc()">...</a>
Если clickfunc()
возвращает false
, клик по ссылке не будет перенаправляться на "http://..."
Хотя вы, вероятно, справляетесь с ним больше как
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').onclick = function() {
...
else { return false; }
};
</script>
Ответ 2
Вы должны предотвратить по умолчанию функцию щелчка:
function stopDefAction(evt) {
evt.preventDefault();
}
Ответ 3
вы можете заменить атрибут href текстом "javascript: void (0)", например:
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
Ответ 4
Да, вам нужно предотвратить действие по умолчанию. Вы можете сделать это, возвратив false
в свой атрибут onclick.