前两天因为业务需要,研究了一下扫码枪,得出了两个笨方法,用于扫码后调用接口传输数据
方法一:
1.先生成一个二维码,改二维码里的数据就是你要请求需要向接口所传递的数据
2.然后写一个html页面,里面就放一个input框就好了,这个input框就是用来接收你二维码里面的数据的
3.写一段js,让用户打开页面后input自动永久聚焦
4.再写一段js,检测input里面是不是有输入内容,如果有,那么则拿到里面的内容触发ajax把内容提交过去,提交成功后清除掉input里面的value值即可
附上代码:
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> <input type="text" id="d1" value="" style="opacity:0;"> <script type="text/javascript"> var a = []; var timeout; $("input").keyup(function(){ a.push($(this).val()); clearTimeout(timeout); timeout = setTimeout(function(){ var b = a.pop(); $.ajax({ url:b, type:"post", data:{}, jsonType:"json", success:function(a){ $('input').val(""); console.log(a); }, error:function(e){ alert("错误"); $('input').val(""); } }); },1000); }); //input自动永久聚焦 $(document).ready(function(){ $("input").focus(); }) $(function () { $('#d1').blur(function () { var that = this; //或者用闭包 setTimeout(function () { $(that).focus(); },100); }); }); $('#d1').blur(function() {$(this).focus(); }); </script> </body> </html>
方法2:
因为扫码枪在扫码的时候会自动触发submit,那么我们可以利用这个点,去实现form表单提交
如:
<form method="post" action="https://www.cnblogs.com/junyi-bk"> <input type="text" id="d1" value=""> <input type="submit"> </form>
该方法比方法一要简单很多,因为我们是利用扫码枪自动触发submit的特效来提交,所以也不用写ajax,但是缺点就是,传递过去的数据只能是一条。