2015-08-20 2 views
0

На мобильном сафари на iPhone ...Mobile Safari - автофокус не работает

Перед тем, как двигаться дальше и пометить это как неразрешимые ... есть в любом случае автофокусировка поле ввода раз загрузки страницы? Меня не волнует, когда срабатывает автофокусировка - я просто хочу, чтобы она была автоматической или щелкнула где-то. Я пробовал js, HTML5 и jQuery = все не удалось. Я знаю, что есть 100 + пост, с того момента, когда. Я просто хочу убедиться, что это невозможно.

<input autofocus id="AutoFocusMe" type="text" placeholder="Email Address"/> 

JS Я пробовал:

$("#AutoFocusMe").focus(); 

...

document.getElementById("AutoFocusMe").focus(); 

...

if (!("autofocus" in document.createElement("input"))) 
{document.getElementById("AutoFocusMe").focus(); } 

и

setTimeout(function() { 
jQuery('#AutoFocusMe').focus(); 
}, 500); 

Добавьте к этому списку теперь ...

document.getElementById('AutoFocusMe').click(); 

ответ

0

насчет просто проверить, если autofocus является undefined после загрузки окна, убедившись, что все элементы формы будут загружены.

Мой пример работает в codepen режиме отладки (без окон)

http://s.codepen.io/jonathan/debug/xwgWKe?

Вам необходимо запустить этот код на удаленном сервере или локальном сервере, а не через iframe через JSfiddle или CodePen. JSfiddele и CodePen запускают код внутри iframe. Мой пример выше работает в режиме отладки Codepen. Поэтому он не запускает код в iframe. IFrame будет блокировать autofocus

// wait until all links, inputs, images are loaded 
$(window).on("load", function(){ 

    if(document.createElement("input").autofocus === undefined) { 
     $("[autofocus]").filter(":last").focus(); 
    } 

}); 

если autofocus атрибут undefined используется селектор атрибута, чтобы передать фокус на последний вход с атрибутом autofocus.

Причина, по которой я использовал jQuery on() load обработчиком событий, должен был убедиться, что прослушиватель событий постоянно работает для кросс-браузера. Поскольку window.load не работает последовательно перекрестно браузера.

+0

Это не похоже на работу - https://jsfiddle.net/o7c5ewfy/1/ – RooksStrife

+0

@RooksStrife Это работает в обычной серверной среде. Причина, по которой она не работает, связана с загрузкой jsfiddle в iframe. Здесь он работает с CodePen в режиме отладки. Режим отладки CodePen запускает код без iframe. http://s.codepen.io/jonathan/debug/xwgWKe? Я также тестировал на своем удаленном сервере, и он работает. –

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