我正在尝试让.focus()
在Mac上使用Firefox(版本33.1.1)。一些类似的问题提到了.focus()
没有视觉效果的解决方案;在下面的每个测试中,我甚至无法实现这一点。
下面列出的各种测试都适用于Chrome,但不适用于Firefox。使用的HTML是:
<input type="text" id="test" tabindex="1">
设置tabindex
基于this suggestion,但似乎没有任何效果。
我还考虑使用autofocus
,但这不起作用,因为我需要在用户使用网页时操纵多个字段的焦点,而不仅仅是加载单个字段。
更新:Rhumborl建议below该问题可能需要在使用iframe时对Firefox的焦点事件进行处理,而且肯定会出现问题。当您从JSFiddle的iframe“编辑小提琴”窗口中取出它而不是查看输出全屏时,以下每个测试都有效。下面我添加了每个工作全屏版本的链接。
.focus()
$("#test").focus();
Fiddle(更新:this works in full screen)。
setTimeout
.focus()
setTimeout(function(){
$("#test").focus();
},100);
Fiddle(更新:this works in full screen)。根据建议here,here和here。
.trigger('focus')
$("#test").trigger('focus');
Fiddle(更新:this works in full screen)。正如建议here。
setTimeout
.trigger('focus')
setTimeout(function(){
$("#test").trigger('focus');
},100);
Fiddle(更新:this works in full screen)。正如建议here。
document.getElementById("test").focus();
Fiddle(更新:this works in full screen)。
setTimeout
setTimeout('document.getElementById("test").focus();',100)
Fiddle(更新:this works in full screen)。正如建议here。
.select()
$("#test").select();
Fiddle(更新:this works in full screen)。正如建议here。
setTimeout
.select()
setTimeout(function(){
$("#test").select();
},100);
Fiddle(更新:this works in full screen)。
这可能是Mozilla需要修复的问题(请参阅here),但似乎确实存在变通方法。例如,如果您在Mac上的Firefox中转到Google.com,请关注input
字段(我无法弄清楚Google是如何做到这一点的,尽管他们似乎正在处理专注于this script)。
所以有人知道解决方法吗?
答案 0 :(得分:0)
<input type="text" id="test" autofocus="autofocus">
如果将autofocus属性添加到输入中,它可能会执行您要执行的操作。