powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запретить переход к элементам страницы по TAB?
14 сообщений из 14, страница 1 из 1
Как запретить переход к элементам страницы по TAB?
    #35361362
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для FF решение я нашел.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function switchOff()
{
	var alltags = document.getElementsByTagName('*');
	for (var i= 0 ; i<alltags.length; i++)
	{
		if (alltags[i].tabIndex >=  0 )
		{
			alltags[i].tabIndex = - 2 ;
		}
	}
}

В опере все равно можем переходить по табу...

А вообще, если начинать с самого начала, то задача такая - сделать полноценное модальное окно (которое представляет собой div на текущей странице). Готовые решения, которые я нашел, не учитывают данную проблему, поэтому приходится все дописывать самому.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35361394
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще 1 способ решения - полностью лочить таб (везде или на некоторых элементах)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function cancel(evt)
{
	evt = ( evt || window.event );
	key = ( evt.keyCode || evt.charCode || evt.which ||  0  );
	if ( key ==  3  || key ==  9  || key ==  13  )
	{
		evt.preventDefault();
		evt.stopPropagation();
	}
}
window.onload = function()
{
	document.body.addEventListener('keypress', cancel, false);
}

Опять же работает только в FF, а нужно кроссбраузерное решение.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35361684
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_elf...сделать полноценное модальное окно...
Из дива что ли¿ хе-хе!
Кроме оперы:
Код: plaintext
1.
<body onkeydown="if(event.keyCode==9) return false;">
Может лучше на onblur focus()?
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35361743
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge
Из дива что ли¿ хе-хе!

Ну а почему бы и нет?
ShSerge
Кроме оперы:
Код: plaintext
1.
<body onkeydown="if(event.keyCode==9) return false;">

Ага, собственно в моем 2м посту написано то же самое.
ShSerge
Может лучше на onblur focus()?
Можно, но тогда получается такая фигня: ТАБ срабатывает, мы переходим на какой-то элемент, и запускаем фунцию, которая переводит фокус куда нам надо. Соотв. экран будет дергаться, что уже неприятно. Хочется найти элегантное решение.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35361774
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясни по человечески чем таб-то мешает?
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35361916
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeОбъясни по человечески чем таб-то мешает?

Теряется концепция модального окна. Можем перейти куда-то, куда не должны иметь возможность переходить.

Вот есть страничка. На нём модальное окно - менюшка или панелька, где что-то можем сделать. Допустим там список из текстовых полей. Так вот удобно переходить по табу от одного поля к другому. Но когда мы дойдем до последнего поля, следуещее нажетие на таб приведет к тому, что мы попадем вообще куда-то неизвестно куда на странице, в то место, которое не относится к данной панельке в принципе.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362010
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_elf
Теряется концепция модального окна.

Вот как раз для этого и showModalDialog придумали. К тому же, настоящее окно можно перетащить за пределы клиентской части основного окна.
last_elf
...на странице, в то место, которое не относится...

Для этого некоторые и прикрывают всю страничку полупрозрачным дивом. Однако, кроме таба ещё и мышеклик есть. С ним-то чего делать?
Кстати в самой новой опере глюк с отменой управляющих клавиш вроде убрали. Только там не кейдаун, а кейпресс.

Вообще, гейм с кейдауном и кейпрессом можешь в моём топике про велосипед посмотреть.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362106
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge
Для этого некоторые и прикрывают всю страничку полупрозрачным дивом. Однако, кроме таба ещё и мышеклик есть. С ним-то чего делать?

Вот я как раз и прикрываю дивом страничку и никого мышеклика нет - нет возможности никуда кликнуться, т.к. весь контент странички находится за дивом.

А я почти решил свою проблему, но теперь вот в FF баги..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<form name="auth_user" onsubmit="return false;">
	
	<table>  
	<tr>
		<td>имя (логин)</td>
		<td align=right><input id="site_login" type="text" tabindex="1"></td>
	</tr>
	<tr>
		<td>пароль</td>
		<td align=right><input id="site_password" type="password" tabindex="2"></td>
	</tr>
	</table>
	<a id="tab_foo" onfocus="set_init_focus()" tabindex="3">
	<div id="logon_message" class="red"></div>

</form>
<script>
function set_init_focus() {
	var new_focus = document.getElementById('site_login');
	document.getElementById('logon_message').innerHTML  += ' set_init_focus ';
	new_focus.focus();
	new_focus.select();
}
</script>

Если понажимать ТАБ, то после первого прохода по тектовым полям, не сможем перейти от 1 ко 2му полю. Будет постоянно вызываться функция set_init_focus(). В остальных браузерах нормально.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362311
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прибей атрибут табиндекс и всё заработает.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362322
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS Shift+Tab - тоже надо прочекать.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362380
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeПрибей атрибут табиндекс и всё заработает.
Табиндексы как раз нужны, иначе везде кроме оперы будем переходить еще на строку ввода запроса в браузере и ходить там по панелькам вверху браузера. Плюс табиндекс у тега а нужен сам по себе, иначе не будем переходить с предыдущего текстового поля на него.

Сейчас сделал так, и работает славате господи:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<form name="auth_user" onsubmit="return false;">
	
	<table>  
	<tr>
		<td>имя (логин)</td>
		<td align=right><input id="site_login" type="text" tabindex="1"></td>
	</tr>
	<tr>
		<td>пароль</td>
		<td align=right><input id="site_password" type="password" onblur="set_init_focus()" tabindex="2"></td>
	</tr>
	</table>
	<a id="tab_foo" tabindex="3">
	<div id="logon_message" class="red"></div>

</form>

ShSergePS Shift+Tab - тоже надо прочекать.
Спасибо.. черт, вот теперь еще и это делать надо..
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362532
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_elf...иначе везде кроме оперы будем переходить еще на строку ввода запроса в браузере и ходить там по панелькам вверху браузера. .... Не воспроизводится. Похоже, у тебя ашыпка где-то. Давай примерчик.
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362556
last_elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge last_elf...иначе везде кроме оперы будем переходить еще на строку ввода запроса в браузере и ходить там по панелькам вверху браузера. .... Не воспроизводится. Похоже, у тебя ашыпка где-то. Давай примерчик.

Ну вот в FF наблюдается поведение, о котором я говорил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<form name="auth_user" onsubmit="return false;">
	
	<table>  
	<tr>
		<td>имя (логин)</td>
		<td align=right><input id="site_login" type="text"></td>
	</tr>
	<tr>
		<td>пароль</td>
		<td align=right><input id="site_password" type="password" onblur="set_init_focus()"></td>
	</tr>
	</table>
	<a id="tab_foo" tabindex="3">
	<div id="logon_message" class="red"></div>

</form>
<script>
function set_init_focus() {
	var new_focus = document.getElementById('site_login');
	document.getElementById('logon_message').innerHTML  += ' set_init_focus ';
	new_focus.focus();
	new_focus.select();
}
</script>
...
Рейтинг: 0 / 0
Как запретить переход к элементам страницы по TAB?
    #35362574
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё заработает. Мне тоже - интересно. Маненько подожди - я уже хорошо выпил сегодня...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запретить переход к элементам страницы по TAB?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]