Flash抢占键盘焦点问题

33
执行搜索时,我注意到有几个问题专门讨论如何窃取/捕获访问者的键盘焦点。考虑到这个网站专注于编程,这并不令人惊讶。我想知道是否有人可以建议我如何防止这种行为。失去键盘焦点基本上会使我的浏览器功能失效,直到我使用鼠标点击其他地方(我使用Mozilla Firefox)。有人知道某种插件或greasemonkey脚本,可以防止我的键盘焦点被窃取吗?通过必须使用鼠标将键盘焦点返回到浏览器,常规浏览器“快捷键”变得无用。
编辑:回复下面的帖子,我确实有flashblock/noscript和其他一些东西。我的问题是希望看到/与之交互的Flash窃取我的焦点。基本上在寻找一些可以切换的东西,可以防止Flash获得键盘焦点,或者一种强制我的Firefox键盘命令进入浏览器的方法。

7
帮帮我!我也遇到同样的问题了!这让我很烦,因为我通常都是靠键盘操作的。 - stu
OP并不是在寻找编程方案,而是在寻找插件。这个问题应该发到Superuser上。 - Justin Johnson
请迁移到超级用户! 安装Focus Retainer插件并按ctrl+f12 - n611x007
6个回答

13

很不幸,这是一个近十年来广为人知的FF bug(现在在Chrome中也存在),但在IE中不存在。当焦点在Flash对象上时,所有的Ctrl+TCtrl+TabCtrl+W等按键都会停止工作。

更糟糕的是,似乎没有人知道如何修复它(请参见上面的线程)。一些IBM人为Linux做了hack fix,但对于Windows则没有。这真的很令人恼火。

[更新于2013年3月:在Google Chrome版本“24.0.1312.52 m”及更高版本中,Ctrl+Tab键不会失去对Flash的焦点]


2
我用jQuery在Chrome中实现了这个可怕的hack,其中this是页面上的某个元素,如果视口滚动到该元素,我们就没问题了:$("<input>").css({opacity: 0}).appendTo(this).focus().remove(); - Henrik N
太酷了,这真的有效!!!谢谢亨里克,这一定是正确的答案,而不是一个注释。 - smnbbrv

4

似乎没有任何CTRLALT组合键可以释放焦点。唯一有效的是操作系统的组合键。即使切换到另一个窗口也无济于事,焦点仍然停留在原处,而且您不能像通常使用键盘那样更改选项卡、关闭它或执行其他任何操作。

我曾经一段时间没有用鼠标使用我的电脑,这是我遇到的第一个实际问题(除了某些网站缺少拖放功能和不可达的按钮图标)。因此,如果您面临同样的困境并且不想完全关闭Firefox,则仍然可以使用ALT聚焦于应用程序的工具栏(至少在Windows中)。但是,没有关闭选项,但您可以从历史记录中选择任何其他网站(例如以h字母开头的主页),然后最终关闭选项卡。

因此(至少在Windows上使用FF5)例如,在Firefox的英文版中,您可以键入:ALT+S+H,然后使用ALT返回(或使用CTRL+WCTRL+F4关闭选项卡)。


2
类似问题: Flash 偷走了浏览器焦点 以下是一个(未被采纳但看起来很有前途的)答案:
 document.body.focus();

可能对你有用。这可以很容易地通过Greasemonkey实现。很可能。


1

在 Mac OSX 10.6 上使用 Firefox 4,如果插件(flash)具有焦点,并且您无法使用 Cmd+1Cmd+T 等进行选项卡切换等操作。

首先使用 Cmd+L 将浏览器地址栏聚焦,然后再执行 Cmd+1 等操作...


0
首先,请确保您使用的Flash播放器版本高于6.0。另外,另一位回答者是正确的。FireFox不应自动获取内联Flash内容的焦点...它并不是设计成那样的。
其次,这不仅仅是一个烦恼,而是一个可访问性问题。那些只能用键盘或辅助设备(如屏幕阅读器)导航的用户将无法逃脱...因为他们不会/不能使用鼠标。
为了避免在键盘导航中使用Flash,或者隐藏不重要的Flash内容,使其对Web浏览器和屏幕阅读器都不可见,请在包含Flash电影或swf的网页的对象和嵌入标记中添加wmode选项,并将其值设置为opaque。
代码示例:
<object ...>
<param name="wmode" value="opaque">
<embed wmode="opaque" ...>
</embed>
</object>

这将有效地隐藏Flash电影,使其无法被屏幕阅读器/辅助设备和键盘识别。它仍然会在页面中可见,但在浏览页面时,键盘将跳过Flash内容,屏幕阅读器将表现得好像它根本不存在。

然而!!!如果电影/swf包含重要信息,则要么在单独的页面中显示Flash电影,要么包括下载最新版本Flash播放器的链接,并告知用户他们需要使用此版本。当然,您还应该使您的Flash作品可以通过键盘导航。

FLASH的缺陷:原生键盘可导航的Flash仅在Internet Explorer中可用...因为Adobe/Macromedia设计了“可访问的Flash”与MSAA(Microsoft Active Accessibility)技术一起工作,而唯一支持MSAA技术的浏览器是Internet Explorer。


0

Alt-Tab 切换到当前应用程序将返回焦点。


1
在运行多个选项卡的浏览器中,当您返回到浏览器时,它不会将焦点从Flash内容移开。 - Skip R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接