不同浏览器上的 Javascript/Flash 焦点问题

标签 javascript flash focus

我一直在研究如何使用 Javascript 将焦点定向到 Flash 电影。我已经在 Stack Overflow 和其他网站上看到过它的讨论,似乎你不能可靠地做到这一点,除非在 Internet Explorer 中。我只是通过 Javascript 在 Flash 对象上调用 .focus() 方法。

它在 Internet Explorer 中确实有效,但我不喜欢它在 Firefox 或其他浏览器中的行为。基本上,我的 Flash 影片中有一个用户名/密码登录字段,我想在加载 Flash 影片时将焦点放在它上,这样您就可以立即开始输入您的用户名,而不必先单击该字段。

Firefox 的问题在于它不仅没有设置焦点,而且在 Flash 中您可以在字段内看到一个闪烁的光标,这确实表明该字段具有焦点。但是,您仍然需要点击。

这在 Firefox 上适得其反。如果这是行为,我宁愿不尝试设置焦点。我当然可以检查正在使用的浏览器并确定是否甚至调用 .focus(),但此功能可能会在更高版本的 Firefox 中发生变化。我很想有一个更好的解决方案,那就是:

  1. 在将 Flash 电影动态添加到页面之前记住当前焦点(我就是这样做的,我无法将电影显示为初始页面加载的一部分)。
  2. 尝试将焦点设置到 Flash 影片。
  3. 检查焦点是否正确设置,因此我可以预期 Flash 影片实际上无需额外点击即可接收击键。
  4. 如果未设置焦点,则恢复到加载 Flash 影片之前焦点所在的位置。

我不确定如何(或是否)可以做到这一点,但我很想知道。我认为 document.activeElement 可能会有用,但我无法深入了解它。感谢您的帮助!

最佳答案

这可能会有所帮助。这是一种使用 javascript 的解决方法,可以避免完全关注实际的 Flash 对象......

https://github.com/englandrp/Cross-browser-Flash-tabbing-and-focus-solution

关于不同浏览器上的 Javascript/Flash 焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3643264/

相关文章:

wpf - DataGrid 选项卡导航跳过列

android - 如何在 editText 处于焦点时隐藏键盘

javascript - 更改作为函数参数的js变量?

Flash Builder 代码完成在针对不同的播放器 API 时不起作用

闪存错误 5001 : name of package does not reflect location?

c# - WPF-MVVM : Setting UI control focus from ViewModel

javascript - 如何使用html切换不同图像上的两个表单击第一行

javascript - 将元素放置在文档元素可见部分的底部

javascript - 从 $.getJSON 方法读取数据

flash - HTML 5 <video> 标签与 Flash 视频。优缺点都有什么?