【问题标题】:jQuery Prevent Default Action Function Keys (F3, F4, etc.)jQuery 防止默认操作功能键(F3、F4 等)
【发布时间】:2011-05-05 05:41:01
【问题描述】:

我在这里有一个非常基本的例子:http://jsfiddle.net/arhVd/1/

<form>
  <input type="text">
  <input type="submit">
</form>

$(function () {

    $(document).keydown(function(e) {

        e.preventDefault();

        $('form').submit();
    });
});

我想确保按下 F4 时它不会执行内置浏览器功能(在 F4 的情况下,将焦点设置到 URL 栏。或者 F3 显示“查找”栏。)提交表单的功能仍然有效,我只是不希望浏览器功能妨碍您。

这适用于功能键应该在应用中具有热键的内部应用。

【问题讨论】:

    标签: jquery keyboard-events hotkeys


    【解决方案1】:

    这似乎适用于 IE8 中的 F3:

    $(document).keydown(function(event) {
      event.preventDefault();
    
      if (event.keyCode == 114) { // F3
        // Remap F3 to some other key that the browser doesn't care about
        event.originalEvent.keyCode = 0;
      }
    };
    

    (基于http://www.fixya.com/support/t218276-disable_f3_function_key_from_intenet

    【讨论】:

      【解决方案2】:

      我不相信你可以劫持用户的浏览器。

      【讨论】:

      • 其实我知道这样可以防止按键的默认动作。
      • 我绝对不会指望能够做到这一点。简单google一搜就知道不同浏览器对不同功能键的处理方式不同,有些是不能覆盖的(如F1、F5)
      • 另外我不是在谈论覆盖键,我只是想阻止它们的默认操作。我在这里用原始 JS 看到它。我只是在寻找一个带有 jQ​​uery 传递的事件对象的简单 jQuery 解决方案。 stackoverflow.com/questions/1492080/disable-f5-key-in-safari-4
      • 我刚刚在 IE 6 中测试了按键事件捕获,并且文档未能注册按键。它适用于 FF 3.6.12。
      • 在 safari 4 SO 问题中禁用 f5 键的链接中有更多信息,然后在我的回答中。把它拉下来。
      猜你喜欢
      • 2011-06-29
      • 2012-08-30
      • 1970-01-01
      • 2011-08-23
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多