实现扫描条形码,自动弹出相应用户信息的对话框
2014-10-09 17:25
423 查看
首先想到是不是使用java代码来读取条形码,试了一下,java代码可以读取条形码内容,代码就不放出来了,但是想到了一个问题,在一个web应用中好像无法直接通过java代码直接来读取扫描到的条形码信息,跟web打交道的首先是浏览器,是页面,这个条形码的信息我是无法直接搞到java后面来处理了,因为这个条形码一扫描就相当于是一个键盘的输入,看了一下条形码的说明说,有其他的输出方式,但都不太懂,有串口模式,还有0CIA模式还有MAC模式。这些我都看不太懂,所以只能通过javascript来监听这个键盘的输入事件了。这里如果有更好的方法,请大神指教了。
确定了使用javascript来读取条形码的键盘输入事件,那么先的学习一下怎么使用javascript来监听键盘事件。
有困难找百度,其实我是先搜索了一下百度,找了两个例子,先跑起来看看效果,如下:
这个可以实现一个效果,那就是你输入键盘上的按钮,自动弹出他的keyCode码和实际你按的是键盘上的哪个键。然后又找了一个例子:
在此说一下,这两个例子都是我百度来的,由于文档是后写的,一开始也忘了是哪儿找的了,没有加链接,希望别告我啊,哈哈。这个就是你在输入框中输入什么字符都能识别出来,可以看的出来是用全局变量记录当前键盘输入的内容的。
做了一下简单的了解了,也有了一个大概的印象,可以看看文档了。
上w3cschool上查找一下文档,首先找到了HTML DOM Event对象,这里面列出了一些能够触发浏览器事件的属性名称,其中找到跟键盘有关的属性有:onkeydown、onkeypress、onkeyup这三个属性。这三个属性的含义如下:
onkeydown:某个键盘按键被按下。
onkeypress:某个键盘按键被按下并松开。
onkeyup:某个键盘按键被松开。
按照三个解释来看,我认为如果按下一个按键,触发的顺序为onkeydown->onkeypress->onkeyup,下面做个试验来试一下:
通过这个简单的例子,可以得出结论确实如上面预想的一样,但是如果有onkeydown和onkeypress的话,onkeyup就不会执行。
想了一下目前我项目所需要的情况,通过扫枪,扫描条形码,目前我可以理解成一个键盘输入,这个输入的地方是在系统内的任意一个界面中,当写这段话的时候我想到了登录如果超时的情况,这个可以以后进行考虑,可以做定时页面刷新,还可以在扫描之后先进行登录判断也是可以的,目前就是在普通的页面上进行键盘输入,不是输入框,也不是什么其他的内容,就是当前的界面中,所以这次实现,就应该像上面那个例子一样,在document对象中调用,document代表了当前的网页。但是如果我想要整个网站都能够监听这个事件,那么只能做成全局的,而且每个页面都得加载,这里就有个问题,和其他的输入如何区分,一开始我想了很久,会不会和一些输入框什么的冲突,通过实践来证明,不管是什么,只要是有键盘的输入都会激活这个事件,所以我先做一个简单的例子,那就是当扫描枪扫描过后,弹出对话框,对话框中可以显示扫描到的内容。
写了一个小例子,
确定了使用javascript来读取条形码的键盘输入事件,那么先的学习一下怎么使用javascript来监听键盘事件。
有困难找百度,其实我是先搜索了一下百度,找了两个例子,先跑起来看看效果,如下:
function keyDown() { var keycode = event.keyCode; var realkey = String.fromCharCode(event.keyCode); alert("按键码: " + keycode + " 字符: " + realkey); } document.onkeydown = keyDown;
这个可以实现一个效果,那就是你输入键盘上的按钮,自动弹出他的keyCode码和实际你按的是键盘上的哪个键。然后又找了一个例子:
var keystring = "";//记录按键的字符串 function $(s){ return document.getElementById(s)?document.getElementById(s):s; } function keypress(e){ var currKey=0,CapsLock=0,e=e||event; currKey=e.keyCode||e.which||e.charCode; CapsLock=currKey>=65&&currKey<=90; switch(currKey){ //屏蔽了退格、制表、回车、空格、方向键、删除键 case 8: case 9: case 13: case 32: case 37: case 38: case 39: case 40: case 46: keyName = ""; break; default:keyName = String.fromCharCode(currKey); break; } keystring += keyName; } function keydown(e){ var e=e||event; var currKey=e.keyCode||e.which||e.charCode; if((currKey>7&&currKey<14)||(currKey>31&&currKey<47)){ switch(currKey){ case 8: keyName = "[退格]"; break; case 9: keyName = "[制表]"; break; case 13:keyName = "[回车]"; break; case 32:keyName = "[空格]"; break; case 33:keyName = "[PageUp]"; break; case 34:keyName = "[PageDown]"; break; case 35:keyName = "[End]"; break; case 36:keyName = "[Home]"; break; case 37:keyName = "[方向键左]"; break; case 38:keyName = "[方向键上]"; break; case 39:keyName = "[方向键右]"; break; case 40:keyName = "[方向键下]"; break; case 46:keyName = "[删除]"; break; default:keyName = ""; break; } keystring += keyName; } $("content").innerHTML=keystring; } function keyup(e){ $("content").innerHTML=keystring; } document.onkeypress=keypress; document.onkeydown =keydown; document.onkeyup =keyup;
<input type="text" /> <input type="button" value="清空记录" onclick="$('content').innerHTML = '';keystring = '';" /> <br />请按下任意键查看键盘响应键值: <span id="content"></span>
在此说一下,这两个例子都是我百度来的,由于文档是后写的,一开始也忘了是哪儿找的了,没有加链接,希望别告我啊,哈哈。这个就是你在输入框中输入什么字符都能识别出来,可以看的出来是用全局变量记录当前键盘输入的内容的。
做了一下简单的了解了,也有了一个大概的印象,可以看看文档了。
上w3cschool上查找一下文档,首先找到了HTML DOM Event对象,这里面列出了一些能够触发浏览器事件的属性名称,其中找到跟键盘有关的属性有:onkeydown、onkeypress、onkeyup这三个属性。这三个属性的含义如下:
onkeydown:某个键盘按键被按下。
onkeypress:某个键盘按键被按下并松开。
onkeyup:某个键盘按键被松开。
按照三个解释来看,我认为如果按下一个按键,触发的顺序为onkeydown->onkeypress->onkeyup,下面做个试验来试一下:
function onkeydown(){ alert("onkeydown"); } function onkeypress(){ alert("onkeypress"); } function onkeyup(){ alert("onkeyup"); } document.onkeydown = onkeydown; document.onkeypress = onkeypress; document.onkeyup = onkeyup;
通过这个简单的例子,可以得出结论确实如上面预想的一样,但是如果有onkeydown和onkeypress的话,onkeyup就不会执行。
想了一下目前我项目所需要的情况,通过扫枪,扫描条形码,目前我可以理解成一个键盘输入,这个输入的地方是在系统内的任意一个界面中,当写这段话的时候我想到了登录如果超时的情况,这个可以以后进行考虑,可以做定时页面刷新,还可以在扫描之后先进行登录判断也是可以的,目前就是在普通的页面上进行键盘输入,不是输入框,也不是什么其他的内容,就是当前的界面中,所以这次实现,就应该像上面那个例子一样,在document对象中调用,document代表了当前的网页。但是如果我想要整个网站都能够监听这个事件,那么只能做成全局的,而且每个页面都得加载,这里就有个问题,和其他的输入如何区分,一开始我想了很久,会不会和一些输入框什么的冲突,通过实践来证明,不管是什么,只要是有键盘的输入都会激活这个事件,所以我先做一个简单的例子,那就是当扫描枪扫描过后,弹出对话框,对话框中可以显示扫描到的内容。
写了一个小例子,
相关文章推荐
- 实现功能:弹出一个DIV层提示等待信息,这个时候禁用用户操作页面中的其他内容
- 去掉IE自动弹出“该页正在访问其控制范围之外的信息,这有些危险,是否继续?”对话框
- 微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆
- servlet实现自动登录,并显示保存的用户信息
- Android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能
- 用JavaScript弹出的alert对话框中如何实现显示信息的换行
- 微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆
- JavaScriptCookie&PHPCookie实现用户登录信息自动填入
- 去掉IE自动弹出“该页正在访问其控制范围之外的信息,这有些危险,是否继续?”对话框
- 使用window.prompt()实现弹出用户输入的对话框
- js实现每个IP每天只弹出一次广告页,js实现html自动弹出对话框
- 使用AlertDialog实现使用在android中弹出对话框,询问用户是否继续执行
- winform中如何实现自动点击webbrowser弹出对话框中的确定按钮
- ubuntu 12.04 实现用户自动登陆并启动相应的应用程序
- 用户填完信息后关闭弹出框并刷新父页面 JS实现
- 打开网页自动弹出QQ对话框的实现办法
- (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835
- 会自动弹出另存为对话框,提示用户保存路径.
- Android实现勾选保存用户名登陆信息、进入自动读取用户登陆信息
- js实现浏览器右下角弹出提示信息窗口,几秒后自动关闭