删除 twitter.com 上的 J 和 K 键事件
remove J and K key events on twitter.com
我构建了一个扩展 twitter.com 的浏览器扩展。它打开一个jQuery UI模式窗口,并有一些文本输入。当我输入这些输入时,它可以工作,除了 J 和 K 键。这些键是一些自定义Twitter事件(在推文之间滚动)的一部分。我可以得到所有键来实际将字母输入框中,除了这两个。
我想知道如何解绑这两个键的keypress
内容,以便我可以输入这两个字母。关于如何解绑它们的任何想法?我尝试捕获事件并防止其默认值...没有帮助。我已经抓住了它并返回了真/假,也没有帮助。请让我知道。
这听起来与我遇到的问题非常相似,谷歌会改变向上和向下箭头键。这是我在得到一些帮助后在 SO 上解决它的地方。基本上我像这样停止了事件(对我来说,它上下起伏,找到您的 j 和 k 的键码):
if (event.keyCode == 40 || event.keyCode == 38) {
event.cancelBubble = true;
event.stopPropagation();
return false;
}
Twitter似乎使用jQuery进行事件绑定。 从 JavaScript 控制台中,我们可以检查以下事件:
$(document).data('events').keydown;
$(document).data('events').keypress;
$(document).data('events').keyup;
通过基本的反复试验,我们可以通过删除这些事件并测试缺少的功能来将范围缩小到按键事件。
// Results in j/k keys no longer moving up/down
$(document).data('events').keypress = [];
这当然是一种砍杀方法,但对于缩小范围很有用。
当我构建浏览器扩展以增强页面时,我在 Twitter.com 上的文本区域和输入字段遇到了同样的问题。通过定位扩展创建的特定输入和文本区域,然后停止按键事件的传播,我能够使一切按预期工作。
$("selector-for-inputs-created-by-extension")
.bind("keypress", function(e) {
e.stopPropagation();
});
希望这有助于澄清事情。
相关文章:
- Twitter引导选项卡显示页面加载时未触发事件
- Twitter Bootstrap Popover添加了一个带有事件的回调函数
- 处理Twitter Flight组件的多个实例的事件
- 将twitter引导程序popover设置为在某个事件之后隐藏,然后在另一个事件之后显示
- 在文本区域中的Keyup事件上触发Twitter Bootstrap Popover
- 如何在Twitter对话中的每个无限滚动事件上执行Greasemonkey脚本
- 显示模态时未触发 Twitter 引导模态事件
- 如何使 Twitter 引导 .popover 在 .submit 事件中工作
- Twitter Typeahead区分事件
- Twitter 引导弹出窗口 :如何在不使用正文/文档事件处理程序的情况下在外面单击时隐藏它
- 在 Twitter 引导模式中输入按键时触发 onClick 事件
- 我如何替换像twitter或facebook这样的keydown事件上的hash标签.javascript//jquer
- 如何确定Twitter引导组件事件的来源
- JavaScript强制事件激发(Twitter API)(JQuery上下文菜单)
- jQuery-两个事件在Twitter启动后启动's模式关闭
- Twitter引导程序模式隐藏事件只触发一次
- twitter引导向导:多个事件处理不起作用
- 如何应用twitter模式弹出全日历事件点击
- Javascript twitter事件并获得tweet文本
- 如何附加一个函数弹出窗口解散事件(Twitter Bootstrap)