@biffick
Вопрошатель

Чем можно заменить a href?

Чем можно заменить кнопку, которая является ссылкой (a href)?
На сайте имеются модальные окна, которые открываются при нажатии на такую кнопку.

Проблема: при нажатии правой кнопкой мыши по кнопке есть пункт в браузере "Открыть в новой вкладке", хотя открывать нечего во вкладке, т.к. открываться должно модальное окно.
  • Вопрос задан
  • 244 просмотра
Решения вопроса 2
mizutsune
@mizutsune
I will live forever in the flame of your eyes.
Правильнее будет сделать кнопкой, то есть тегом </button>. При использовании данного тега есть свои плюсы и одним из них является поддержка фокуса по дефолту, т.е если юзать например </div>, то тогда придётся делать дополнительные телодвижения чтобы кнопка слепленная из тега </div> - корректно принимала на себя фокус, например, с клавиатуры. Да и к тому же более семантично использовать </button> для подобных целей. Хотя можно использовать и тег <input>, но в данной ситуации, он совершенно не к месту.
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Ничем, если ваc это раздражает, просто заблокируйте контекстное меню на таких ссылках. Пример:
<a oncontextmenu="event.preventDefault();" href="#">Тест</a>

Попробуйте нажать такую ссылку правой кнопкой мыши... ничего не будет происходить.

Немного доработав пример, можно сделать так, чтобы правый клик был равноценен клику левому:
<a oncontextmenu="event.preventDefault(); this.click();" href="#">Тест</a>

А значит будет открываться модалка даже при клике правой кнопкой мыши.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
div, или input, или button, или что угодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы