使用 jQuery 的 .focus() 在 Mac 上的 Firefox 中设置焦点
Using jQuery's .focus() to set focus in Firefox on a Mac
我正在尝试让.focus()
在Mac上的Firefox(版本33.1.1)中工作。一些类似的问题提到了在没有视觉效果的情况下具有.focus()
效果的解决方案;在下面的每个测试中,我什至无法完成。
下面列出的各种测试都可以在Chrome中工作,但在Firefox中不起作用。使用的 HTML 是:
<input type="text" id="test" tabindex="1">
设置tabindex
是基于这个建议,但似乎没有任何效果。
我还考虑过使用 autofocus
,但这行不通,因为我需要在用户使用网页时操纵多个字段的焦点,而不仅仅是加载时的单个字段。
更新:Rhumborl在下面建议,在使用iframes时,该问题可能必须与Firefox对焦点事件的处理有关,果然这似乎是问题所在。当您将其从 JSFiddle 的 iframe "编辑小提琴"窗口中取出并改为全屏查看输出时,以下每个测试都有效。下面我添加了指向每个工作全屏版本的链接。
一个。 .focus()
$("#test").focus();
小提琴(更新:这适用于全屏)。
二. setTimeout
.focus()
setTimeout(function(){
$("#test").focus();
},100);
小提琴(更新:这适用于全屏)。正如这里、这里和这里所建议的。
三. .trigger('focus')
$("#test").trigger('focus');
小提琴(更新:这适用于全屏)。正如这里所建议的。
D. setTimeout
与.trigger('focus')
setTimeout(function(){
$("#test").trigger('focus');
},100);
小提琴(更新:这适用于全屏)。正如这里所建议的。
E. Plain JavaScript
document.getElementById("test").focus();
小提琴(更新:这适用于全屏)。
F. setTimeout
使用普通的JavaScript
setTimeout('document.getElementById("test").focus();',100)
小提琴(更新:这适用于全屏)。正如这里所建议的。
G. .select()
$("#test").select();
小提琴(更新:这适用于全屏)。正如这里所建议的。
H. setTimeout
与.select()
setTimeout(function(){
$("#test").select();
},100);
小提琴(更新:这适用于全屏)。
这可能是Mozilla需要修复的问题(见这里),但似乎确实有解决方法。 例如,如果你在Mac上的Firefox中转到 Google.com,焦点会转到input
字段(我无法弄清楚Google是如何做到这一点的,尽管他们似乎正在处理这个脚本中的焦点)。
那么有谁知道解决方法吗?
<input type="text" id="test" autofocus="autofocus">
如果将自动对焦属性添加到输入中,它可能会执行您尝试执行的操作。
- [AutoIt]如何使用FF.au3在FireFox上的页面中运行javascript
- getOwnPropertyNames忽略Firefox上的__proto__
- 在firefox上的滚动事件中移动元素
- 检测Firefox上的多个按键(Greasemonkey)
- chrome和firefox上的javascript null比较不同
- 在 Firefox 上的 DOMContentLoaded 之前运行的异步回调
- Firefox 上的 Web Worker 中的 IndexedDB
- Firefox 上的 Javascript 在 onchange 任务上意外停止执行
- 平滑滚动并使用 Firefox 上的 popState 返回按钮 - 需要单击两次
- Javascript animationend Event Listener 在 Firefox 上的行为不同
- Mac版Firefox上的Audio.js和.ogg
- ExtJS拖拽事件监听器在Chrome和Firefox上的工作方式不同
- mouseup事件停止firefox上的click事件
- Firefox上的localStorage出现问题
- OSX safari/firefox上的原型日期格式验证错误
- 选择框和Firefox上的模糊事件
- Firefox上的Javascript:可以从html对象访问二进制数据
- Angular在Firefox上的指令
- Userscript适用于Chrome上的Tampermonkey,但不适用于Firefox上的Greasemonkey
- firefox上的Javascript函数问题没有通过jquery键盘输入启动计数器(在Chrome和IE上工作)