【发布时间】:2018-06-26 02:07:58
【问题描述】:
我正在尝试在 javascript 浏览器应用程序中处理来自条形码扫描仪的输入。扫描仪输出是一串字符,其中还包含至少一个组分隔符字符 (ASCII 29)。
当我将输入定向到记事本++ 时,输入会正确显示,包括组分隔符字符。当我将输入定向到<input type="text"> html 字段时,组分隔符对象丢失;它在现场既不可见,也无法通过 javascript 代码检测到。
<input type="text"> 对象会截断 ASCII 控制字符吗?知道如何避免这种情况吗?
编辑: 我正在使用类似于 Raidox 的答案的代码来实现这一点:
inputField.onkeypress = catchGroupSeparatorAndEnter;
var fncChar = String.fromCharCode(29);
function catchGroupSeparatorAndEnter(event) {
if (event.ctrlKey && event.which === 29) {
inputField.value = inputField.value + fncChar;
event.preventDefault();
event.stopPropagation();
}
...
}
这似乎适用于 Chrome 和 Edge,但不适用于 Firefox。我不知道如何让它在那里工作。
【问题讨论】:
-
尝试探索这个答案,它可能会对你有所帮助。 stackoverflow.com/questions/31867551/…
-
谢谢,但我在该帖子中找不到任何有用的信息。我不需要在输入字段中添加任何字符,我需要阅读组分隔符,因为它告诉我一条信息在哪里结束,而另一条信息从哪里开始。还有其他想法吗?
-
请告诉我们您是如何接收数据的,您收到了什么以及如何将此值放入输入中。
-
同意,需要样品。您是否尝试在文本区域中使用
pre?不过不用担心,微软花了 25 年的时间来修复它,他们刚刚做到了 :) blogs.msdn.microsoft.com/commandline/2018/05/08/…
标签: javascript html ascii control-characters