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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> setFocus и IE 
:(
    Опции темы
Phohack
Дата 19.2.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот есть скриптик который устанавливает фокус на первый активный элемент:
Код

for (i=0; i< s; i++){
            var input = inputs[i];            
            var par = jQuery(inputs[i]).parents();
            var inputVisible = par.size() == par.filter(':visible').size();//Fix for applets
            if (!input.disabled && inputVisible){
                input.setAttribute('tabindex', '1'); // Is neccesery for fixing IE behaviour.
                input.select(); // Is neccesery for fixing IE behaviour.
                input.focus(); 
                var temptext = input.value; // Is neccesery for fixing IE behaviour.
                input.value = ""; // Is neccesery for fixing IE behaviour.
                input.value = temptext;            // Is neccesery for fixing IE behaviour.
                found = true;
                break;                
            }            
        }


Вот он работает корректно в фаерфоксе и даже в 7-м IE, но в последнем не всегда. Иногда просто не устанавливается. Притом скрипт отрабатывает. Можно например поместить какое нибудь значение в этот элемент. Значение устанавливается а фокус нет. У кого есть предположения почему это может не работать поделитесь пожалуйста.

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


Шустрый
*


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

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



Провел интересный эксперимент:
Код

for (i=0; i< s; i++){
            var input = inputs[i];            
            var par = jQuery(inputs[i]).parents();
            var inputVisible = par.size() == par.filter(':visible').size();//Fix for applets
            input.focus(); //added unrequired appendix
            if (!input.disabled && inputVisible){
                input.setAttribute('tabindex', '1'); // Is neccesery for fixing IE behaviour.
                input.select(); // Is neccesery for fixing IE behaviour.
                input.focus(); 
                var temptext = input.value; // Is neccesery for fixing IE behaviour.
                input.value = ""; // Is neccesery for fixing IE behaviour.
                input.value = temptext;            // Is neccesery for fixing IE behaviour.
                found = true;
                break;                
            }            
        }


добавил установку фокуса для всех элементов, которые идут перед активным. После чего активный элемент перестал устанавливаться в активное состояние. Подумал что возможно если фокус был установлен ранее значит другой элемент получить его не может. Добавил блюр() после каждой установки фокуса. Не помогло. Можно как нибудь глобально снять фокус у всех элементов странички?
PM MAIL   Вверх
Phohack
Дата 20.2.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Еще заметил что есть показать окно алерта, то фокус устанавливается. Можно ли как нибудь окно алерта тут же закрывать или там какое нибудь всплывающее самозакрывающееся окошко сделать. Подскажите пожалуйста.
PM MAIL   Вверх
Phohack
Дата 23.2.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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