2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 На что заменить .focus() в firefox?
Сообщение24.08.2016, 02:30 
Аватара пользователя


28/07/16
5
Лицей №1, Всеволожск, ЛО, РФ
Пишу страницу для сайта, есть такая проблема:
Изначально есть такой элемент прямо внутри <body>:
Используется синтаксис HTML
<input id="mainblock" type="text" maxlength="0" onkeyup="raspredfun(event)" onblur="antifocusfun()" autofocus>

Смысл в том что когда я захожу на страницу mainblock оказывается под фокусом, а потом если пытаться убрать фокус с элемента срабатывает это:
Используется синтаксис Javascript
function antifocusfun(){
document.getElementById('mainblock').focus();
};

И фокус возвращается на место.
В гугл хроме всё прекрасно... А в firefox не работает!!!
Я уже пробовал так:
Используется синтаксис Javascript
function antifocusfun(){
document.getElementById('mainblock').selected = true;
};

И всё равно ничего хорошего!
Помогите исправить!

 Профиль  
                  
 
 Re: На что заменить .focus() в firefox?
Сообщение24.08.2016, 13:57 
Аватара пользователя


18/06/12

499
планета Земля
Позвольте мне прогуглить это за вас: http://lmgtfy.com/?q=getelementbyid+focus+firefox

P.S. Не знаю, что вы там пишете, но ни один метод в моём браузере не раздражает меня так же сильно, как onblur, если бы была возможность его отключить, я бы так и сделал.

 Профиль  
                  
 
 Re: На что заменить .focus() в firefox?
Сообщение25.08.2016, 01:22 
Заслуженный участник


26/05/14
981
Работоспособность вашего кода зависит от способа обработки переноса фокуса. Вы устанавливаете фокус в то же время в которое браузер его переносит с элемента на элемент. Если процесс обработки в браузере такой
Код:
do_blur();
call_onblur_handler(); // здесь вы пытаетесь установить фокус
set_focus_on_new_control();
то у вас ничего не выйдет.
Чтобы поправить ситуацию оберните установку фокуса в setTimeout. Задержку можно установить в ноль. В этом случае ваш код выполнится сразу после того как браузер завершить все свои дела по переносу фокуса. Тут-то вы его и поправите.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group