起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3500|回复: 9

[处理中3] 监听扫描枪数据的代码的位置

[复制链接]

480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
发表于 2019-11-13 20:12:54 | 显示全部楼层 |阅读模式
<html>
<head>

</head>
<body >
<script>
    window.onload = function(e){
        var code = "";
        var lastTime,nextTime;
        var lastCode,nextCode;
        var a = "";  
        document.onkeypress = function(e) {

            nextCode = e.which;

            nextTime = new Date().getTime();

            if(lastCode != null && lastTime != null && nextTime - lastTime <= 30) {
                code += String.fromCharCode(lastCode);

            } else if(lastCode != null && lastTime != null && nextTime - lastTime > 100){
                code = "";
            }
            lastCode = nextCode;
            lastTime = nextTime;

             if(e.which == 13){
                a = a+ code+ ",";
                console.log(a);
                code = "";
             }


        }

    }
</script>
</body>
</html>

上面这段js 代码 是用来监听扫描枪的扫入数据的, 我想问问, 在bex5 5.2.7的js代码里, 我该将上面的这段js 放在哪个地方, 才能发挥他的监听作用?


480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
 楼主| 发表于 2019-11-13 23:03:53 | 显示全部楼层
就是监听键盘或者扫描枪输入的内容的js 代码应该放在哪里才能起作用,

我自己写的代码放在单独的html里是可以起作用的,
但是在x5的js里好像没起作用,应该放在哪个位置呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2019-11-14 09:07:54 | 显示全部楼层
model的onload事件
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
 楼主| 发表于 2019-11-14 09:19:31 | 显示全部楼层
本帖最后由 davidhuang 于 2019-11-14 09:21 编辑

但是不起作用, 为什么单独跑就可以 , 放在onload里面,要去掉哪些代码?  
你可以帮我测试一下
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2019-11-14 10:29:35 | 显示全部楼层
debugger调试看看具体哪个地方的不会执行啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
 楼主| 发表于 2019-11-14 13:20:20 | 显示全部楼层
本帖最后由 davidhuang 于 2019-11-14 13:23 编辑

mainActivity.model1Load = function(e){
   
       var code = "";
        var lastTime,nextTime;
        var lastCode,nextCode;
        var i =0;
        
        document.onkeypress = function(e) {
           i = i+1;
           //console.log(i);
            nextCode = e.which;
           
            nextTime = new Date().getTime();
  
            if(lastCode != null && lastTime != null && nextTime - lastTime <= 30) {
                code += String.fromCharCode(lastCode);
              
            } else if(lastCode != null && lastTime != null && nextTime - lastTime > 100){
                code = "";
            }
            lastCode = nextCode;
            lastTime = nextTime;

             if(e.which == 13){
                alert(code);
                justep.xbl('dataMain').setValue('fScanContext',code);
                console.log(code);
                code = "";
             }


        };
  
  };

上面的alert(code)语句不起作用,  justep.xbl('dataMain').setValue('fScanContext',code); 不起作用,   console.log(code); 倒是起作用了, code的值就是扫描枪扫到的二维码
请问这两句为什么不起作用?


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2019-11-14 13:33:23 | 显示全部楼层
自己写的document.onkeypress中肯定不能用平台的API啊,自己用jquery的 方式去获取input,给input赋值,然后在input的事件中去给data上的关系赋值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
 楼主| 发表于 2019-11-14 13:51:01 | 显示全部楼层
本帖最后由 davidhuang 于 2019-11-14 14:06 编辑

那为什么alert语句也不能起作用?

还有就是 为什么扫到的条码记下了两次,


实在不明白x5的事件机制,

麻烦你看看怎样写才对, 是不是这样写,事件的触发有问题,
我单独放在html里,每次log ,只会log一条记录,
但是放到x5的onload就log了两条
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4476

积分

论坛元老

Rank: 8Rank: 8

积分
4476
QQ
 楼主| 发表于 2019-11-14 14:07:08 | 显示全部楼层
或者你告诉我用x5的api如何获取 键盘的输入内容
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2019-11-14 14:49:19 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-10-6 23:21 , Processed in 0.094582 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表