Запретить вкладку в элементе A (ссылка на ссылку) в HTML

152

Можно ли отменить <a href="...">вкладку в любом браузере? Я хотел бы сделать это без Javascript.

Роберт Коритник
источник

Ответы:

265

Некоторые браузеры поддерживают этот tabindex="-1"атрибут, но не все, поскольку это не стандартное поведение.

Роберто Алои
источник
22
О, круто! Спасибо! Я проверил с FF3.5, IE8 и CH3, и он работает во всех трех. Бесконечно благодарен!
Роберт Коритник
1
Не беспокойтесь об этом: так же , как zzzzBov гласит здесь , HTML5 не пришел на помощь и стандартизированы эту функциональность. Так что теперь виноваты браузеры, которые пропускают это.
TechNyquist
1
Имейте в виду, что отключение табуляции в гиперссылке противоречит правилам доступности (например, пользователям, использующим программы чтения с экрана и т. Д.). Если вы знаете, что это не проблема для вашей пользовательской базы, тогда все будет хорошо.
Рикардо Санчес
73

Современные HTML5-совместимые браузеры поддерживают этот [tabindex]атрибут , где значение -1будет препятствовать тому, чтобы элемент был вставлен в закладки.

Если значение является отрицательным целым числом,
пользовательский агент должен разрешить фокусировку элемента, но не должен позволять доступ к элементу с использованием последовательной навигации по фокусу.

zzzzBov
источник
1
Отрывки документации всегда помогают. ;-) Это говорит нам о том, что те, кто не поддерживает это, являются одними из немногих, и они, вероятно, поддержат это рано или поздно.
Роберт Коритник
15

Вы можете применить обработчик JQuery к элементу, на который вы хотите нацелить несколько элементов без остановки табуляции.

$(document).ready(function () {
    $('.class').attr('tabindex', '-1');
});

Был бы один способ сделать это ....

dtharpe
источник
6

Я думаю, что вы можете сделать это с помощью javascript, переопределить window.onkeypressили onkeydown, перехватить кнопку вкладки и установить фокус в нужном порядке.

Ammosi
источник
2
Я не знаю, проверяли ли вы другие ответы, особенно тот, который был принят около года назад, и решили эту проблему, не используя Javascript.
Роберт Коритник
2
Я ценю альтернативное решение, даже если оно не касается OP, а также принятого ответа. Не надо унижать.
Энтони ДиСанти
@ Энтони ДиСанти: Это правда, но в данном конкретном случае я до сих пор не понимаю, зачем прибегать к javascript, если что-то работает лучше? Так что, если это не ответ на этот вопрос, почему он здесь? Неважно. Javascript обычно является последним шагом, который можно предпринять, если некоторые вещи не могут быть выполнены иначе. И мне жаль @ Аммоси, если я тебя оскорбил. Я не хотел быть грубым. Спасибо за поздний ответ.
Роберт Коритник
7
Я согласен с тем, чтобы избегать JavaScript, если существует стандартное решение HTML или CSS. Однако в этом случае нет. Оригинальный постер не нуждался в поддержке браузеров до IE8 и FF3.5, но для моей работы мне нужно было вернуться к IE6. Поэтому решение tabindex не применимо. Предоставлять единственное рабочее решение в браузере с наибольшей долей на рынке не следует.
Энтони ДиСанти
4

Удалить hrefатрибут из вашего тега привязки

CodeDreamer68
источник
что делать, если я не могу?
Хакан Фистик
Если вы хотите использовать javascript, несмотря на вопрос, чтобы избежать подобных решений, чтобы удалить атрибуты href, используйте загрузку документа jquery с чем-то вроде$('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman
6
LOL удалить HREF
Quemeful