Javascript 删除twitter.com上的J键和K键事件

Javascript 删除twitter.com上的J键和K键事件,javascript,krl,Javascript,Krl,我构建了一个扩展twitter.com的浏览器扩展。它打开一个jQueryUI模式窗口,并有一些文本输入。当我输入这些输入时,它工作,除了J和K键。这些键是一些自定义Twitter事件(在tweet之间滚动)的一部分。除了那两把钥匙外,我可以把所有的钥匙都打进去 我想知道如何解开这两个键的按键键,这样我就可以输入这两个字母了。关于如何解开它们有什么想法吗?我已经尝试捕捉事件并阻止它的默认值…没有帮助。我抓住了它并返回了真/假,也没有帮助。请让我知道 Twitter似乎使用jQuery进行事件绑定

我构建了一个扩展twitter.com的浏览器扩展。它打开一个jQueryUI模式窗口,并有一些文本输入。当我输入这些输入时,它工作,除了J和K键。这些键是一些自定义Twitter事件(在tweet之间滚动)的一部分。除了那两把钥匙外,我可以把所有的钥匙都打进去


我想知道如何解开这两个键的
按键
键,这样我就可以输入这两个字母了。关于如何解开它们有什么想法吗?我已经尝试捕捉事件并阻止它的默认值…没有帮助。我抓住了它并返回了真/假,也没有帮助。请让我知道

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 = [];

这当然是一种刀耕火种的方法,但对于缩小范围很有用

这听起来很像我遇到的一个问题,谷歌会改变上下箭头键。经过一些帮助,我终于解决了这个问题。基本上我是这样停止活动的(对于我来说,它是向上和向下的,找到你的j和k的键码):


当我构建一个浏览器扩展来增强页面时,我在Twitter.com上的文本区域和输入字段也遇到了同样的问题。通过针对扩展创建的特定输入和文本区域,然后停止keypress事件的传播,我能够让一切按预期工作

$("selector-for-inputs-created-by-extension")
    .bind("keypress", function(e) {
        e.stopPropagation();
    });

希望这有助于澄清问题。

查看
phoenix.bundle.js
,它似乎完成了您所说的绑定。也许可以找出它绑定的函数,或者覆盖它们,或者引用它们来分离触发器。所以这个按键数组中有三个事件。将它们中的任何一个设置为null都会修复页面。@aaronfrost我认为这三个都不是此行为所涉及的,但是通过将一个设置为null,您在事件处理代码中创建了一个异常,导致大多数/所有它们都不会触发(因此感兴趣的一个不会触发)
$("selector-for-inputs-created-by-extension")
    .bind("keypress", function(e) {
        e.stopPropagation();
    });