Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> onblur="this.focus();" и форма, форма не работает 
:(
    Опции темы
SVK
Дата 16.3.2004, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 22.5.2003

Репутация: нет
Всего: 1



Напоролся на какой-то дурацкий глюк IE6.

Задача: надо вернуть фокус на окно с формой, чтобы юзер не терял ее среди других окон.
Фокус-то возвращается, но при этом в форме перестает работать <select>! БЛИН!!! Подмигивает и сбрасывается в 1-й элемент.

Проблема в том, что оказывается при выборе элемента формы в IE поджигается событие window.onblur, затем скрипт исправно ставит фокус на window, при этом убирает его с select-a и селект сбрасывается.

В NS7 все работает нормально.
Код
<body onblur="this.focus();">
<select>
<option> 1st
<option> 2nd
<option> 3rd
</select>
</body>

Тот же эффект дает скрипт:
Код
function setFocus(){window.focus();}
window.onblur=setFocus;

Пробовал модальный диалог, но он мне не подходит по другим причинам.
Не знаю, что и делать... Казалось, что все просто, ан нет.


PM MAIL   Вверх
Alx
Дата 16.3.2004, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



пиши в Microsoft, бабки получишь! smile.gif) шутка


--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 17.3.2004, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



По моему получаетс бесконечный цикл потери и тут же получения фокуса, у меня 1stPage2000 повис smile.gif.

Лучше отказатся от использования события onBlur. Опиши лучше задачу.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
SVK
Дата 17.3.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 22.5.2003

Репутация: нет
Всего: 1



2 ALEXANDRO: писать мелкомягким стремно - спросят ведь S/N виндов - пи%%лей еще получишь smile.gif

2 Sardar: задача простейшая - есть web-приложение, в котором юзер открывает окошки со вспомогательными формами, чтобы что-то там выбрать или сделать и вставить в главную форму. Очень желательно, чтобы "тупой" юзер не терял окошко с вспомогательной формой, случайно кликнув в другое окно эксплорера. То есть, открыл, поработал и закрыл. А если кликнул не туда, чтобы это окошко снова выскочило. Все, вроде, просто - ловим window.onblur и ставим фокус назад. Но window.onblur поджигается и при выборе элемента формы и window.focus() убирает фокус с элемента формы и ставит на window. В результате форма заблокирована.

Пока писал - решил проблему!: : )))

Код
<html><body>
<form name=theForm>
<select onfocus="formFocus(1);" onblur="formFocus(0);">
<option> 1 <option> 2 <option> 3
</select>
<input onfocus="formFocus(1);" onblur="formFocus(0);">
</form>

<script>
var foc=0;

function formFocus(f)
{ foc=f;
 window.status += "f"+f;
 if (f==0)
 window.setTimeout("setFocus()",10);
}

function wFocusLost()
{ window.status += "w0";
  window.setTimeout("setFocus()",10);
}

function setFocus()
{ if (foc == 0)
 { window.status += "w1;";
    window.focus();
 }
}
window.onblur=wFocusLost;
window.focus();
</script>
</body></html>


Таймаут нужен, т.к. сначала window теряет фокус, а потом уже элемент формы его получает. Всякие там window.status=... - только для того, чтобы посмотреть, что там творится.

Кривовато, правда - во все элементы onblur и onfocus вставлять.
Может, что-то красивее придумать можно?
PM MAIL   Вверх
Gold Dragon
Дата 17.3.2004, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Я не знаю на сколько это корректно, но так работает

<body onblur="document.focus();">
<select>
<option> 1st
<option> 2nd
<option> 3rd
</select>



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SVK
Дата 18.3.2004, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 22.5.2003

Репутация: нет
Всего: 1



2 Red Dragon - увы - работает только в том случае, если фокус перед уходом со страницы стоял где-то на <body>.
Если фокус был на элементе формы - то он не возвращается на окно. А жаль sad.gif

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1164 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.