【问题标题】:How to simulate F1 pressed in JavaScript function如何在 JavaScript 函数中模拟 F1 按下
【发布时间】:2013-02-14 08:32:37
【问题描述】:

我正在开发一个在客户现有门户中运行的网络解决方案。在此门户中,他们已经以不同于默认行为的方式处理 F1。

我想在我的解决方案中添加一个“帮助”图标,单击该图标会模拟按 F1。当然,我希望解决方案尽可能跨浏览器兼容,但最终版本将仅在 Internet Explorer 8 中运行(实际上按下了兼容性按钮 - GRRRR)。

我发现了许多处理按 F1 的函数,但没有描述如何以编程方式模拟按 F1。

如果有帮助,我正在使用 jQuery 1.8.2...

提前致谢

【问题讨论】:

  • 它们仍然在 IE8 中运行的原因是什么(也有兼容模式)?如果我有一个可以在兼容模式下运行 IE8 的客户端。使用我开发的应用程序的模式,我需要他们使用的好浏览器,或者他们放弃这个要求。
  • 该客户拥有 25.000 多名员工,并且总是很晚才更新他们的软件。很多员工仍在运行 XP(!)。所以它不在我的手中......
  • 啊,好吧,可以理解 :) 我只是想知道。

标签: javascript jquery keyboard-shortcuts


【解决方案1】:

【讨论】:

  • 使用 openwritings 中的示例我在调用 dispatchEvent 时得到一个“未定义的方法”...
【解决方案2】:

在这个页面https://github.com/jeresig/jquery.hotkeys#readme 有这样的报价: “其他的,(IE) 要么让你处理内置的快捷方式,但会在你的代码执行后添加它们的功能。或者 (Opera/Safari) 根本不会将这些事件传递给 DOM。 因此,如果您绑定 Ctrl-Q 或 Alt-F4 并且您的 Safari/Opera 窗口已关闭,请不要感到惊讶。”

这意味着您可能无法做您想做的事情,因为按 F1 会从 Windows 启动帮助。

【讨论】:

  • 好吧,我正在为其开发框架的门户已经处理了这个问题,但那是在按键盘上的 F1 时。我想单击一个图标并模拟按 F1。
【解决方案3】:
jQuery.event.trigger({ type : 'keypress', which : 112 });

【讨论】:

  • 嗯...无法正常工作。在 Chrome 中尝试我通常会获得一个新的帮助选项卡。这无济于事。在 IE 中也一样。
  • 嗯,我很确定这是正确的键码。如果您改为触发keyup,可能吗?
  • Nope :-( 什么都没有。在 Chrome 中,当我按 F1 时,我会看到一个带有 Chrome 帮助的新标签。单击执行上述代码(或使用 keyup)的链接什么都不做 :-( 我将拥有想出别的办法。感谢大家的努力。
猜你喜欢
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2019-02-23
相关资源
最近更新 更多