document.onkeydown 键盘输入仅大写
document.onkeydown Keyboard Input is only capitalized
我正在尝试建立一个公共墙,对于所有访问网页的人来说,它看起来都是一样的,并且在用户之间同步。我正在努力正确捕获键盘输入以应用于画布。我的函数基于 document.onkeydown,可以在所述网页中引用的"脚本.js"中看到。当您双击单词并写入时,可以看到它正在工作。
不幸的是,这似乎无法捕获除大写字母以外的任何内容,我正在寻找另一种方法来解决这个问题。我已经研究了本页中描述的"textInput"事件,但是它似乎只受WebKit浏览器支持,我想构建一些通用的东西。有人可以建议另一种方法来捕获键盘输入以在画布中使用吗?或者也许我在做一些愚蠢的事情?
描述的代码如下:
document.onkeydown = keyHandler;
function keyHandler(e)
{
var pressedKey;
if (document.all) { e = window.event;
pressedKey = e.keyCode; }
if (e.which) {
pressedKey = e.which;
}
if (pressedKey == 8) {
e.cancelBubble = true; // cancel goto history[-1] in chrome
e.returnValue = false;
}
if (pressedKey == 27)
{
// escape key was pressed
keyCaptureEdit = null;
}
if (pressedKey != null && keyCaptureEdit != null)
{
keyCaptureEdit.callback(pressedKey);
}
}
... Later on in code describing each text object ...
keyCaptureEdit.callback = function (keyCode) {
var keyCaptured = String.fromCharCode(keyCode);
if (keyCaptured == "'b" ) { //backspace character
t.attrs.timestamp = t.attrs.timestamp + 1;
t.setText(t.getText().slice(0, -1));
}
else if (keyCode == 32 || keyCode >= 48 && keyCode <= 57 || keyCode >= 65 && keyCode <= 90)
{
t.attrs.timestamp = t.attrs.timestamp + 1;
t.setText(t.getText() + keyCaptured);
}
layer.draw();
}
更改代码的一种简单方法是跟踪 shift 键:
...
{
keyCaptureEdit.callback(pressedKey, e.shiftKey); // <-- keep track of shift key
}
}
...
keyCaptureEdit.callback = function (keyCode, shift) {
var keyCaptured = String.fromCharCode(keyCode);
// shift key not pressed? Then it's lowercase
if (shift === false) keyCaptured = keyCaptured.toLowerCase()
但这并不能解释CapsLock。
在jQuery中,它非常简单,因为正确的键代码是为您完成的:
$(document).keypress(function(event) {
var keyCaptured = String.fromCharCode(event.keyCode);
console.log(keyCaptured);
});
在该示例中,控制台将根据键入的内容正确记录 P 或 p。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- document.onkeydown 键盘输入仅大写
- 输入onkeydown功能在自动完成的形式
- 计数输入字符-使用onkeyup或onkeydown
- 如何在一个网页的文本框中输入文本与onblur,onfocus和onkeydown属性使用Selenium Webdri
- Onkeydown JS 函数,用于添加调用同一函数的输入
- 正则表达式在Javascript中解析输入onKeyDown