[英]Using https://twitter.com/intent/user?user_id= for the follow button remove button styling
[英]remove J and K key events on twitter.com
我构建了一个扩展 twitter.com 的浏览器扩展。 它打开一个 jQuery UI 模态 window,并有一些文本输入。 当我输入这些输入时,它可以工作,除了 J 和 K 键。 这些键是一些自定义 Twitter 事件(在推文之间滚动)的一部分。 除了这两个之外,我可以获得所有将字母实际输入框中的键。
我想知道如何取消绑定这两个键的keypress
内容,以便我可以输入这两个字母。 关于如何解除绑定的任何想法? 我已经尝试捕捉事件并阻止它的默认值......没有帮助。 我已经抓住它并返回真/假,也没有帮助。 请告诉我。
这听起来与我遇到的问题非常相似,谷歌会改变向上和向下箭头键。 这是我在一些帮助后解决它的地方。 基本上我这样停止了事件(对我来说,它的上下,找到你的 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;
通过基本的反复试验,我们可以通过删除这些事件并测试缺失的功能,将 scope 缩小到按键事件。
// Results in j/k keys no longer moving up/down
$(document).data('events').keypress = [];
这当然是一种 hack-and-slash 方法,但对于缩小范围很有用。
当我构建浏览器扩展以增强页面时,我在 Twitter.com 上遇到了与 textareas 和输入字段相同的问题。 通过定位我的扩展程序创建的特定输入和文本区域,然后停止按键事件的传播,我能够让一切按预期工作。
$("selector-for-inputs-created-by-extension")
.bind("keypress", function(e) {
e.stopPropagation();
});
希望这有助于澄清事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.