【问题标题】:Cannot give focus to Flash object with keyboard, but can focus with JavaScript无法使用键盘将焦点赋予 Flash 对象,但可以使用 JavaScript 进行焦点
【发布时间】:2013-04-06 23:19:11
【问题描述】:

这个问题与我在此处的另一个问题相关(但不同于):Give focus to browser

我的页面上有一个嵌入式 Flash 对象,我希望它包含在选项卡循环中。我已经在上面设置了tabindex,它可以在 FireFox 中使用,但在 Google Chrome 和 Apple Safari 中仍然无法关注。

下面是一些简单的测试代码:

<a href="#" tabindex=1>A</a>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width=550 height=400 id=movie_name tabindex=1>
    <param name=movie value="http://helpx.adobe.com/content/help/en/flash-player/kb/find-version-flash-player/_jcr_content/main-pars/flash_1/file.res/theFile.swf"/>
    <embed src="http://helpx.adobe.com/content/help/en/flash-player/kb/find-version-flash-player/_jcr_content/main-pars/flash_1/file.res/theFile.swf" name=movie_name type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" tabindex=1 />
</object>
<a href="#" tabindex=1>Z</a>
<button onclick="document.movie_name.focus()">Force focus into Flash</button>

(在小提琴中:http://jsfiddle.net/tcDGq/

每样东西都有一个tabindex1(我也尝试过00,1,2 等的变体),但无法用键盘聚焦闪光灯对象。单击它可以工作,按下按钮也可以,这会触发一些简单的 JavaScript。您可以通过捣碎 TAB 来判断它是否集中;它永远不会通过键盘放弃焦点,因此您永远不会看到任何突出显示的内容。

好的,所以我可以拼凑一个修复程序,拦截 TAB 键并在特定情况下强制焦点,但坦率地说,这是一个可怕的解决方案。我在这里错过了一些属性吗?如果可能的话,我正在寻找一个纯 HTML 修复程序。

【问题讨论】:

    标签: html google-chrome focus embedded-flashplayer


    【解决方案1】:

    原来这是 WebKit 中的一个已知错误,因此影响 Chrome 和 Safari(不是 FireFox,我不知道 Internet Explorer 或 Opera)

    相关跟踪器在这里:https://bugs.webkit.org/show_bug.cgi?id=32292

    巧合的是,这个问题几天前就解决了,所以希望它很快就会公开发布。由于 Chrome 和 Safari 都设法让大多数用户保持最新状态,我认为在此期间构建解决方法不值得(但如果有人确实有很好的解决方法,请在此处发布!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 2013-07-02
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多