【问题标题】:Safest way to break Flash focus?打破闪光灯焦点的最安全方法?
【发布时间】:2015-11-19 19:35:20
【问题描述】:

要点: 让 Flash 对象在网页上脱离焦点的最佳方法是什么?

上下文: 我有一个热键监听器(一个 AutoHotKey 脚本)在我的托盘中运行。如果脚本在我被点击进入网页上的 Flash 对象时检测到命令Alt+Shift+F6,它会激活并将组合键发送到 Flash 以提取某些数据日志。此过程完成后,我想在同一浏览器选项卡上调用一个 JavaScript 文件,该文件向用户请求其他信息 - 基本上,一个带有第三方错误跟踪器中可用的附加文本字段的微型 UI。为此,我想使用Ctrl+L 向地址栏发送javascript: 命令,并将AutoHotKey 粘贴到对JS 文件的完整调用中。

可能环境的可视化:

问题: 我需要点击用户进入 Flash 才能提取数据日志。但是,我需要用户点击退出 Flash 以使 Ctrl+L 实际工作 - 当其中一个对象具有焦点时,Flash 似乎会吃掉浏览器级别的所有击键。

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

其他复杂因素:

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

【问题讨论】:

    标签: javascript flash automation focus autohotkey


    【解决方案1】:

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

    【讨论】:

    • 这是一个不错的计划,但如果我能提供帮助,我想避免明显修改用户的环境。 (在这种情况下,我可能无能为力。)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2010-10-02
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多