【问题标题】:Capturing the TAB key in Gmail and other sites that blocks the capture在 Gmail 和其他阻止捕获的网站中捕获 TAB 键
【发布时间】:2012-10-01 12:32:56
【问题描述】:

keydown 上使用preventDefault() 适用于所有键除了某些网站(如 Gmail)上的 Tab 键。

  1. 为什么会这样? tab 键有什么特别之处——不应该和其他keypress 一样对待吗?

  2. 如何阻止 Tab 键循环浏览 Gmail 中的元素?

这是我目前正在使用的 Greasemonkey (JS with jQuery) 代码:

$("body.editable.LW-avf").keydown(function(event){
    if(event.which == 9){
        event.preventDefault();
    }
});

除了 tab(例如 a)以外的任何东西都可以工作 - keypress 已停止。如何捕获 Tab 键?

【问题讨论】:

  • 尝试了各种方法,除了可编辑的 <body> 之外,几乎可以在任何地方阻止该选项卡。您是否考虑过更换电子邮件客户端? (^_^) 为 Google 网站编写脚本是一件苦差事。祝你好运!
  • PS:Tab 键在 Gmail 上的设计方式不同。 Gmail JS 故意对标签做一些事情,你的技术适用于普通网站。 (弄清楚 Gmail 是如何连接到标签的,事实证明并不简单。)

标签: javascript jquery greasemonkey jquery-events preventdefault


【解决方案1】:

Gmail 可能已经使用preventDefault 重新定义事件处理程序,因为它没有使用tabindex。在这种情况下,您需要覆盖 preventDefault 的定义:

Event.prototype.preventDefault = function(){}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 2021-03-03
    • 1970-01-01
    • 2011-09-19
    • 2010-09-05
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多