hash (#) vs end charCode从Firefox的按键事件
hash (#) vs end charCode from keypress event in Firefox
在Firefox(8)中,end键和#键具有相同的charCode(35)。有办法把它们区分开来吗?
我做了一个关于jsfiddle的快速演示。只要在输入框中输入,它就会显示您所按的charCode/键。
http://jsfiddle.net/PfAeW/
我正在构建一个富文本编辑器,其中#触发自动完成功能。我需要迎合国际用户(英国键盘),所以看看是否按下shift将不起作用。
DOM中的键事件有两种代码:charCode
表示可打印键的字符,keyCode
表示键盘上按下的物理键。
碰巧'#'的charCode为35,结束键的keyCode也为35,但它们具有完全不同的数字到含义的映射。
Mootools在事件上暴露了一个.code
,该事件将两个代码合并,因此产生了混淆。
只是为了有一个答案…
看起来Mootools错误地表示了键按(在您的测试中也显示了以下错误的映射):
Key Pressed How Moo Sees It
----------- ---------------
end # 35
. (period) delete 46
( (left paren.) down 40
' (apos.) right 39
但是,您可以使用Keyboard(加上Keys列表)并绑定到正确的序列。我不是很精通moo-tools,但是考虑到文档示例,我不明白为什么以下代码不能工作:
var kb = new Keyboard({
defaultEventType: 'keypress'
});
kb.addEvents({
'end': fnEnd,
});
免责声明:或多或少显示替代方案(或这是我基于文档的理解)而不是解决方案。我不知道上面的代码是否工作,但它应该。但是,我不确定如何将上述控件绑定到特定控件,因此这可能是Keyboard对直接绑定的一个限制。
你可以在keydown事件中检查shift
(event.code == 16
)键并保留它们的值,当按键被触发时,你可以确定code
从keydown
事件是16,现在是35 #
真的被按下了。除非有另一种方法来检查shift是否按下:)
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- Firefox事件.目标问题
- firefox中的Javascript事件范围问题
- Firefox中的JavaScript事件参数
- firefox(谷歌地图)中未触发的点击事件
- Firefox for Android扩展:如何在每次页面加载时触发事件
- 在 Firefox 中“解析”触摸事件
- 为什么 touchstart 事件在 Firefox 中没有触发
- Javascript 按键事件在 Firefox 中不起作用
- 更改 Angular 2 中选择的事件在 Firefox 和 Edge 中不起作用
- 使用Bookmarklet在Firefox中为asp表单加载启动onclick事件
- JQuery:Submit事件未在FireFox上启动
- 在firefox上的滚动事件中移动元素
- ReferenceError:事件未在Firefox中定义错误
- 为什么您需要在firefox中为onClick传递事件,而不使用Angular为chrome传递事件
- 可以't在我的Firefox插件中触发点击事件
- 当我禁用window.onwheel事件时,它会使Firefox中的所有object.onwheele事件也被禁用
- 通过JavaScript引用Firefox事件对象
- 为什么Firefox事件.offsetX和offsetY未定义
- Firefox事件目标的非jquery解决方案