2010-10-02 4 views
0

У меня есть текстовое поле, которое я бы хотел сосредоточить, несмотря ни на что.Лучший способ предотвратить размытие поля?

Проблема заключается в том, что моя страница загружает iframe (перекрестный домен), содержимое которого крадет фокус. Более того, пользователь может вводить текстовое поле, поскольку iframe крадет фокус, заставляя пользователя вводить текстовое поле iframe.

Я пробовал рассылать спам .focus(), надеясь, что если он размыт, он мгновенно переориентируется. Похоже, что это сработает, но что происходит, так это то, что он не переключает фокус назад достаточно быстро - пользователь все еще может набирать поле фокусировки iframe.

Есть ли способ предотвратить размытие вообще? Или более быстрый способ переключить фокус обратно в текстовое поле?

Вот что я пытался, который не работает полностью:

//get the textbox DOM element to focus. 
var my_textbox = $("#my_textbox").get(0); 
//pretty straight-forward -- focus it. 
var setFocus = function(){ 
    my_textbox.focus(); 
} 

//every 10ms refocus our textbox. 
//apparently, 10ms is not fast enough, as some typing 
//still occurs in the iframe's textfield. 
setInterval(setFocus, 10); 

Примечание: я сделал так же, как аналогичный вопрос вчера, но я думаю, что это один добирается до корня проблемы. Надеюсь, все в порядке.

ответ

3

Вы пробовали это?

//get the textbox DOM element to focus. 
var my_textbox = $("#my_textbox").get(0); 

my_textbox.onblur = function(){ 
    my_textbox.focus(); 
}; 

По-прежнему чувствует себя довольно kludgey, но я думаю, что это то, что вы собираетесь делать.

1

Это просто звучит неплохо. Если ваше поле и поле iframe обе борется за фокус, вы можете вызвать бесконечный цикл и повесить свой браузер, иначе вы можете просто ввести в поле. А что, если пользователь хочет ввести в поле iframe? Если бы я пошел на сайт, который вел себя так, как вы описали, я бы ушел и никогда не вернусь.

Если есть что-то, что требует от пользователей немедленного, неразделенного внимания, как вы подразумеваете, то это должно быть единственное, что на странице, похожее на многие страницы входа.

+0

Согласен - я никогда не испытывал висящего или не мог сосредоточиться на другом поле раньше, но это не значит, что его не существует. Я тоже отворачивался от сайта, чтобы никогда не возвращаться, если он делает это. Лучше всего иметь небольшой контент на странице, если вам требуется, чтобы пользователь обратил внимание на поле. Попытайтесь также расширить текстовое поле и, возможно, придать ему красную рамку или предупреждающее изображение рядом с ним или что-то в этом роде. – ClarkeyBoy

Смежные вопросы