Javascript 关注浏览器

Javascript 关注浏览器,javascript,jquery,focus,Javascript,Jquery,Focus,我正在研究键盘的可访问性。我有一个flash对象,它位于页面内,为了防止焦点被困在页面内,我在一些JavaScript函数中添加了通过ExternalInterface对话的选项卡侦听器 JavaScript使用tabIndex查找下一个可用元素,并对其调用focus()。到现在为止,一直都还不错。但是,如果插件是页面上最后一个可选项卡项(或反向选项卡时的第一个),则没有可切换到的元素。通常这会将焦点设置为浏览器窗口,所以我希望保持这种行为 因此我的问题是:是否有可能通过编程将焦点放在浏览器的c

我正在研究键盘的可访问性。我有一个flash对象,它位于页面内,为了防止焦点被困在页面内,我在一些JavaScript函数中添加了通过
ExternalInterface
对话的选项卡侦听器

JavaScript使用
tabIndex
查找下一个可用元素,并对其调用
focus()
。到现在为止,一直都还不错。但是,如果插件是页面上最后一个可选项卡项(或反向选项卡时的第一个),则没有可切换到的元素。通常这会将焦点设置为浏览器窗口,所以我希望保持这种行为


因此我的问题是:是否有可能通过编程将焦点放在浏览器的chrome上?如果我能同时模仿向前和向后的tabling,那就更好了。此外,如果可能的话,我希望避免在flash之前/之后添加额外的选项卡式组件,除非我可以使它们对鼠标和键盘都有效地不可见。

在文档顶部将焦点设置为没有文本内容的虚拟锚点,似乎可以:

document.getElementsByTagName('a')[0].focus();

在我自己寻找类似答案的过程中,

遇到了这个问题。如果要释放当前焦点元素上的焦点,请使用document.activeElement;如果希望在不受支持的情况下进行回退,请将焦点放在文档的父元素上。据我所知,这应该支持所有已知的浏览器:

var activeElement = document.activeElement;
if (activeElement) {
   activeElement.blur();
} else if (document.parentElement) {
   document.parentElement.focus();
} else {
   window.focus();
}

试试$(window.focus()吧?“聚焦浏览器”通常由
window.focus()实现
@Derek&jbabey:
$(窗口)。focus()
什么都不做(至少在谷歌浏览器中不做。这里有一个在其他浏览器中测试的小把戏:)正如我所说的,我想避免添加额外的选项卡式组件,除非它们可以被键盘隐藏;这种方式意味着用户需要额外按tab键一段时间才能通过。所以我会等着看是否有人有其他的方法。没有人有更好的主意,所以我现在就用这个。把焦点放在任何可聚焦的元素上,然后立即模糊它怎么样?我想最终的效果是从flash电影中移除焦点。