Html - Как запретить браузеру открывать ссылку, указанную в href?

В настоящее время я создаю файл-браузер. Если пользователь нажимает на ссылку на файл, открывается небольшое окно и запрашивает параметры (например, загрузка и просмотр). Я сделал это, используя атрибут onclick. Если я нажму на ссылку, javascript будет выполнен, но после этого откроется url, указанный в href. То, что я пытаюсь сделать, - это: если вы нажмете на ссылку javascript, получите исполнение и в конце концов переадресуете. Но если ссылка правильно помечается, "место для ссылки на копии" должно быть доступно. Я собираюсь решить это, заблокировав скрипт пересылки. Таким образом, если ссылка получает rightclicked, javascript не выполняется, и вы можете скопировать местоположение ссылки. Но если вы оставите клик по ссылке, javascript будет выполнен, и ссылка не будет открыта. Возможно ли это с помощью javascript, или есть ли другой способ достижения такого поведения?

Ответ 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>