在iPhone上进行移动游猎...
在我继续前进并将其标记为无法解析之前......一旦页面加载,是否还要自动对焦输入字段?我不关心自动对焦何时被触发 - 我只是希望它是自动的而不是点击某处。我试过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 :(得分:0)
如何在加载窗口后检查autofocus
是否为undefined
,确保加载所有表单元素。
我的示例在codepen调试模式(无iframe)中运行
http://s.codepen.io/jonathan/debug/xwgWKe?
您需要在远程服务器或本地服务器上运行此代码,而不是通过JSfiddle或CodePen 中的iframe运行。 JSfiddele和CodePen在iframe中运行代码。上面的示例在Codepen Debug模式下运行。所以它不会在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
属性的最后一个输入上。
我在()load
事件处理程序上使用jQuery的原因是为了确保事件侦听器一致地为跨浏览器触发。由于window.load
无法跨浏览器一致地工作。