Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запрет на получение фокуса

13
28 ноября 2009 года
RussianSpy
3.0K / / 04.07.2006
Как известно есть такой параметр для объектов страницы и формы - называется tabindex - указывает в каком порядке будет переходить фокус от одного элемента к другому.

Вопрос - а как исключить элемент из этого списка? Как сделать так, чтобы элемент НЕ получал фокус вообще?


Попробую объяснить для чего понадобилась такая штука. В Опере и ФФ была замечена интересная особенность - при нажатии кнопки TAB фокус переходит на области, выделенные с помощью тегов map/area и области эти обводятся по контуру тонкой черной линией в ФФ либо достаточно толстой (2-3 пикселя) и белой в Опере.
Стили для outline и border прописаны, для псевдо-класса :focus прописаны - везде outline и border заданы в ноль.

Пробовал принудительно убрать фокус с помощью JS (отлавливал событие onfocus, отлавливал нажатие кнопки TAB) - не помогает.
92
28 ноября 2009 года
Тень Пса
2.2K / / 19.10.2006
http://codepunk.hardwar.org.uk/ajs18.htm

вот тут есть часть текста озаглавленная Blur, у меня не получилось напечатать в текстбоксе из этой части :) а у тебя? (юзаю FF)
244
28 ноября 2009 года
UAS
2.0K / / 19.07.2006
А у меня в Опере 9.62 это не получилось.
Думаю, я чуть позже покопаюсь, может и можно решить или придумать чего.
13
28 ноября 2009 года
RussianSpy
3.0K / / 04.07.2006
Opera не понимает функции blur() - удивительно, но никакие способы связанные с этим не помогают. Ни нативные, ни через jQuery.

Раскопки в этом направлении веду уже вторые сутки. В гугле пусто. В багрепортах Оперы пусто. Уже начал говнокодить в CSS

 
Код:
img,map,area,img:focus,map:focus,area:focus {border:0px;outline-width:0px;}
a:active,a:focus,img:focus,map:focus,area:focus,img,map,area {outline:0px;}



PS Есть одно решение - полностью заблокировать кнопку TAB. Делается достаточно легко, но это не очень хорошее решение - форма авторизации и форма регистрации останутся без табуляции, что не есть хорошо
13
28 ноября 2009 года
RussianSpy
3.0K / / 04.07.2006
В общем одно решение я придумал, хотя оно и не очень красивое, но единственное что заработало и не потребовало отключать клавишу TAB или ваять горы кода.


Создаем прозрачный gif размером 1х1. Создаем под этот gif <map><area></map> и привязываем к нему. Прописываем id для area. Далее - для каждой area, в которой нам надо избавиться от выделения прописываем перевод фокуса на этот самый свежесозданный map:

 
Код:
<map name="LogoMap">
<area shape="poly" &#111;&#110;focus="document.getElementById('blank_area').focus()" coords="48,21,80,4,128,2,211,53,211,105,170,143,56,145,14,83," href="/" />
</map>


И кстати не обязательно прописывать для каждого элемента. Как показал метод научного тыка - достаточно прописать только для того элемента, который выделяется первым при нажатии кнопки TAB.

Решение не очень элегантное (да и при возврате на эту страницу с помощью кнопки "Назад") выделение снова видно вокруг той области area, с помощю которой мы перешли на следующую страницу. Но в любом случае хоть что-то.

Тем не менее буду рад услышать более красивые способы или новые теории и идеи как бороться.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог