Javascript 打破闪光焦点的最安全方法?

Javascript 打破闪光焦点的最安全方法?,javascript,flash,automation,focus,autohotkey,Javascript,Flash,Automation,Focus,Autohotkey,要点:什么是避免Flash对象聚焦在网页上的最佳方法? 背景: 我有一个热键监听器(一个自动热键脚本)在我的托盘中运行。当我被点击到网页上的Flash对象时,如果脚本检测到命令Alt+Shift+F6,它将激活并向Flash发送组合键以提取某些数据日志。在这个过程完成后,我想在同一个浏览器选项卡上调用一个JavaScript文件,请求用户提供额外的信息——基本上是一个小UI,在第三方bug追踪器中提供额外的文本字段。为此,我想使用Ctrl+L向地址栏发送javascript:命令,并在对JS文件

要点:什么是避免Flash对象聚焦在网页上的最佳方法?

背景: 我有一个热键监听器(一个自动热键脚本)在我的托盘中运行。当我被点击到网页上的Flash对象时,如果脚本检测到命令
Alt+Shift+F6
,它将激活并向Flash发送组合键以提取某些数据日志。在这个过程完成后,我想在同一个浏览器选项卡上调用一个JavaScript文件,请求用户提供额外的信息——基本上是一个小UI,在第三方bug追踪器中提供额外的文本字段。为此,我想使用
Ctrl+L
向地址栏发送
javascript:
命令,并在对JS文件的完整调用中使用自动热键粘贴

可能环境的可视化:

问题是: 我需要用户被点击进入闪存,以便拉数据日志。但是,我需要将用户从Flash中单击,以使
Ctrl+L
实际工作-当Flash的一个对象具有焦点时,它似乎会吃掉浏览器级别的所有击键

一个可能的解决方案:最简单的方法是模拟点击舞台,舞台的每一边都是我的Flash对象。这应该行得通,但我必须假设是最愚蠢的用户。这样的用户会以某种方式限制他们当前的浏览器窗口仅与Flash对象一样大(如果不是更小的话),点击它,然后尝试使用热键。在这种情况下…我不知道应该单击哪里,因为它可能在浏览器之外。此外,我不相信我可以假设所有浏览器地址栏都是从窗口顶部往南的类似数量的像素

其他复杂因素:

  • 我希望此选项适用于用户的默认浏览器。(例如,Chrome、Firefox和Safari是我的大目标。)
  • AHK不提供任何本机DOM或COM挂钩,但IE除外
  • Ctrl+Tab
    Alt+Tab
    这些诡计似乎不起作用。这可以让我转到其他选项卡/窗口,但返回带有Flash对象的选项卡/窗口仍然会导致Flash“吃掉”更多的键盘输入
  • 虽然我愿意使用另一种脚本语言,而不是AHK,如果它能够克服这个Flash焦点障碍,我不知道如何创建一个键盘侦听器,它位于用户托盘中,直到被热键激活
  • 我无法访问Flash对象的代码,它也不包含将组合键解释为断开焦点或启动脚本的方式的逻辑

是否可以使用WinMaximize最大化窗口大小?如果您这样做,那么设置脚本以避免在浏览器外单击会更容易。

也许可以查看
ControlFocus
和/或
ControlSend
(使用IE和FF中的“
edit1
”控件——不幸的是,Chrome没有将“地址栏”作为“控件”公开)通过这种方式,但如果您先测试Chrome,您可以在这种情况下实施“单击Flash框外”方法。)

这是一个很好的计划,但如果我可以帮助的话,我希望避免明显修改用户的环境。(在这种情况下,我可能无能为力。)