powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблема с установкой фокуса
2 сообщений из 2, страница 1 из 1
Проблема с установкой фокуса
    #38596668
Tmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tmk
Гость
Всем привет.
Задача следующая:
нужно установить фокус на заранее известный элемент на странице.

Ограничения: чистый JavaScript, чтобы работало в IE8.
Как работает сейчас, есть приложение на java + jsp. В java-коде фреймворком генерится javascript'овая функция __onAutoFocus(formId, controlId):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
function __onAutoFocus(formId, controlId) {
var el = document.forms[formId][controlId];
if (el == null) 
   el=document.getElementsByName(controlId); 
if (typeof bAutoFocus == 'undefined' || bAutoFocus == null || bAutoFocus == true) {
   if(el != null)  {
      var item = null;    
      if(typeof el.length != 'undefined' && typeof el.tagName == 'undefined')
        item = el[0];
      else
        item = el;
      if(typeof item != 'undefined' && (typeof item.disabled == 'undefined' || item.disabled == false))    {
         if (getPopupWnd() != null) { 
             focusPopupWnd();
             unregisterPopupWnd(); 
         } else {
           try{ item.focus(); } catch(ignore){} 
         }
     }  
  }
}
}
registerClientEventHandler(null, "KcContainerWithDocbaseObject_0_SetAutoFocus", __onAutoFocus);


Далее на document.onreadystatechange производится вызов другой функции, из которой вызывается __onAutoFocus.

Проблема в следующем, иногда фокус устанавливается, иногда нет.
При чем не устанавливается странно, он как бы есть, но курсор не мигает. То есть, если жамкнуть Tab, то курсор переходит на следующий элемент, shift+tab - возвращается куда надо.
На странице часть элементов загружается и отображается асинхронно, ощущение, что в этом косяк.
Так же иногда прямо заметно глазом, что курсор при загрузке страницы начинает мигать где нужно, мигнет 2-3 раза и пропадает.

Пробовал запихнуть вызов __onAutoFocus в window.onload - не спасает. В каких-то случаях, когда все элементы на странице прогружаются достаточно долго, фокус теряется. Делал setTimeout(function () {__onAutoFocus (formId, controlId)},100) - тоже не во всех случая работает.
Готов выслушать любые идеи и предложения почему так происходит.

P.S. Ситуация осложняется еще тем, что я не особо силен в JavaScript :)
...
Рейтинг: 0 / 0
Проблема с установкой фокуса
    #38599021
Tmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tmk
Гость
Заметил занятную особенность, в случае, если курсор исчез, нажать f12, откроются инструменты разработчика, просто их закрыть - курсор начинает мигать в нужном месте.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблема с установкой фокуса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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