Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2009, 10:22
Интересующийся
Отправить личное сообщение для spa_2002 Посмотреть профиль Найти все сообщения от spa_2002
 
Регистрация: 03.09.2009
Сообщений: 11

Как убрать выделение в Опере у div, получившего фокус ?
День добрый всем!

Задача : div должен получать фокус , (путем перебора элементов на странице клавишей Tab) но не отображать его. На div повешено событие onkeydown, обрабатывающее нажатия клавиш - это нужно для компонента , находящегося внутри div.(дерево элементов)

Чтобы div мог получать фокус , выставляем у него tabIndex="0"
Чтобы фокус визуально не отображался :
ie - hidefocus="true"
FF,Chrome,Safari outline="none"
(в примере эти стили опущены, т.к. на Оперу не действуют)

Везде это работает как надо , кроме Opera.
Div,получая фокус выделяет все свое содержимое и рисует вокруг себя жирную синюю рамку. Стилями эти вещи убрать не смог. Природа этого дела - выделение в документе. Если убрать выделение - перестает работать "onkeydown", хотя див все еще остается активным элементом документа.
Что посоветуете ?

Код для оперы:

<body>

<div tabIndex="0" style="border:1px  solid red; height:30px; width:100px;margin-top:20px;">
one
</div>
<input type="text" style="width:80px;margin-top:20px">
<br>
<br>
<a href="http://www.google.ru" focusable="true">EasyLink</a>
<br>
<br>
<input type="Button" style="width:80px" value="val" text="btn"/>
<br>
<br>
<input type="Checkbox" style="margin-top:20px" text="check"/>
<div tabIndex="0"  style="border:1px  solid green; height:30px; width:100px;margin-top:20px;" onfocus="removeSelections(event)" 
onkeydown="alert('keydown on div green')" 
two
</div>
<div tabIndex="0"  style="border:1px  solid blue; height:30px; width:100px;margin-top:20px" >
three
</div>
</body>

<script>
function removeSelections(e)
{
var s=e.target.ownerDocument.defaultView.getSelection();
s.collapseToStart();
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2009, 10:24
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Див по природе своей не должен получать фокус, так что баги вам обеспечены
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2009, 10:34
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

outline: 0;
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2009, 10:35
Интересующийся
Отправить личное сообщение для spa_2002 Посмотреть профиль Найти все сообщения от spa_2002
 
Регистрация: 03.09.2009
Сообщений: 11

Попробуйте сделать веб-приложение , работающее с клавиатурой без получения фокуса дивами.
Повторяю : вышеописанный механизм получения div -ом фокуса и визуальное скрытие его получения прекрасно работает во всех ie(6-8),FF(1.5-3),Safari(3-4),Chrome(0-4). Проблема только с Оперой.
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2009, 10:38
Интересующийся
Отправить личное сообщение для spa_2002 Посмотреть профиль Найти все сообщения от spa_2002
 
Регистрация: 03.09.2009
Сообщений: 11

to Rim: добавил в стили последнего дива из примера outline: 0;
- ничего не поменялось.
Ответить с цитированием
  #6 (permalink)  
Старый 03.09.2009, 10:42
Интересующийся
Отправить личное сообщение для spa_2002 Посмотреть профиль Найти все сообщения от spa_2002
 
Регистрация: 03.09.2009
Сообщений: 11

Попутный вопрос : все нормальные браузеры при нажатии tab выделяют фокусом ссылки, Опера считает это ненужным ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить высоту DIV, установленную автоматически YOricH Internet Explorer 4 22.07.2009 17:15
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53
Как "вытащить" div из table linbis Элементы интерфейса 4 27.03.2009 17:57
Как убрать фокус с селекта в IE6? Shurik_ Общие вопросы Javascript 2 05.11.2008 17:14
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03