| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > onblur="this.focus();" и форма |
| Автор: SVK 16.3.2004, 18:50 | ||||
| Напоролся на какой-то дурацкий глюк IE6. Задача: надо вернуть фокус на окно с формой, чтобы юзер не терял ее среди других окон. Фокус-то возвращается, но при этом в форме перестает работать <select>! БЛИН!!! Подмигивает и сбрасывается в 1-й элемент. Проблема в том, что оказывается при выборе элемента формы в IE поджигается событие window.onblur, затем скрипт исправно ставит фокус на window, при этом убирает его с select-a и селект сбрасывается. В NS7 все работает нормально.
Тот же эффект дает скрипт:
Пробовал модальный диалог, но он мне не подходит по другим причинам. Не знаю, что и делать... Казалось, что все просто, ан нет. |
| Автор: Alx 16.3.2004, 20:03 |
| пиши в Microsoft, бабки получишь! |
| Автор: Sardar 17.3.2004, 01:11 |
| По моему получаетс бесконечный цикл потери и тут же получения фокуса, у меня 1stPage2000 повис Лучше отказатся от использования события onBlur. Опиши лучше задачу. |
| Автор: SVK 17.3.2004, 18:18 | ||
| 2 ALEXANDRO: писать мелкомягким стремно - спросят ведь S/N виндов - пи%%лей еще получишь 2 Sardar: задача простейшая - есть web-приложение, в котором юзер открывает окошки со вспомогательными формами, чтобы что-то там выбрать или сделать и вставить в главную форму. Очень желательно, чтобы "тупой" юзер не терял окошко с вспомогательной формой, случайно кликнув в другое окно эксплорера. То есть, открыл, поработал и закрыл. А если кликнул не туда, чтобы это окошко снова выскочило. Все, вроде, просто - ловим window.onblur и ставим фокус назад. Но window.onblur поджигается и при выборе элемента формы и window.focus() убирает фокус с элемента формы и ставит на window. В результате форма заблокирована. Пока писал - решил проблему!: : )))
Таймаут нужен, т.к. сначала window теряет фокус, а потом уже элемент формы его получает. Всякие там window.status=... - только для того, чтобы посмотреть, что там творится. Кривовато, правда - во все элементы onblur и onfocus вставлять. Может, что-то красивее придумать можно? |
| Автор: Gold Dragon 17.3.2004, 19:16 |
| Я не знаю на сколько это корректно, но так работает <body onblur="document.focus();"> <select> <option> 1st <option> 2nd <option> 3rd </select> |
| Автор: SVK 18.3.2004, 10:36 |
| 2 Red Dragon - увы - работает только в том случае, если фокус перед уходом со страницы стоял где-то на <body>. Если фокус был на элементе формы - то он не возвращается на окно. А жаль |