你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
在js中window.setInterval() 实现ukey的自动识别
 

先看两个简单的小例子。
setTimeout()的使用:
[javascript]
<SCRIPT LANGUAGE="JavaScript">   
function test() {   
    //100毫秒后执行sleep方法, 但这100毫秒程序不会等待,会继续执行setTimeout后面的代码   
    //效果就是 先alert(2); 后 alert(1);   
    window.setTimeout("sleep()", 100);   
    alert(2);      
}   
function sleep(){   
    alert(1);   
}   
test();   
</SCRIPT>   
关于setTimeout方法的第一个参数,可以为 字符串,也可以为方法的指针
如果为字符串的时候必须写括号,指针时不用写括号,
如:
[javascript] 
window.setTimeout("sleep()", 100);   
window.setTimeout(sleep, 100);   

两者效果一样。
另: 可以指定参数,如
[javascript]
window.setTimeout("sleep('" + document.all.aa.value + "')", 100);   
window.setTimeout(sleep(document.all.aa.value), 100);   

然后再sleep方法里可以取到参数的值。
再看看window.setInterval() :
[javascript] view plaincopy
<SCRIPT LANGUAGE="JavaScript">   
var timer;//声明一个定时器   
var count = 0;   
function test()   
{   
    //每隔500毫秒执行一次add()方法   
    timer = window.setInterval("add()",500);   
}   
function add(){   
    alert(++ count);   
    if (count == 5)   
    {   
        //如果count值达到5,清空定时器   
        window.clearInterval(timer);   
    }   
}   
test();   
</SCRIPT>   

应用在加密锁中自动识别加密锁,随时监测到加密锁的插入。
[javascript] 
<span style="white-space:pre">      </span>//设置timer全局变量,当找到加密锁时停止timer 
        var timer; 
         
        function IA300_GetInstance() 
        { 
            if(_IA300Client == null) 
            { 
                _IA300Client = document.getElementById("IA300Client"); 
            } 
             
            _IA300Client.Model = 0; 
           return _IA300Client;  
        } 
         
        var flag = false; 
 
        //页面加载时调用此函数方法 
        function OnPageLoad() { 
            var browser = DetectBrowser(); 
            if (browser == "Unknown") { 
                alert("不支持该浏览器, 如果您在使用傲游或类似浏览器,请切换到IE模式"); 
                return; 
            } 
            //createAdminElementIA300() 对本页面加入IA300插件 
            createElementIA300(); 
            //DetectActiveX() 判断IA300Admin是否安装 
            var create = DetectIA300Plugin(); 
            if (create == false) { 
                alert("插件未安装,请安装开发套件Plugin文件夹下的管理层插件。"); 
                return false; 
            } 
        } 
         //查找本地 
        function IA300Find() { 
            var rtn = IA300_CheckExist(); 
            if (0 < rtn) { 
                /*alert("找到"+rtn+"把锁, 请在列表中选择你需要设置的加密锁. 注意请自行排除管理员锁!");*/ 
                document.getElementById("userUK").options.length = 0; //初始化列表 
                for (i = 0; i < rtn; i++) { //获取所有加密锁硬件ID 
                    var id = IA300_GetHardwareId(i); 
                    if (id == "") { 
                        alert("获取第" + (1 + i) + "把锁硬件ID失败,错误码:" 
                                + IA300_GetLastError()); 
                    } else { 
                        document.getElementById("userUK").options[i] = new Option( 
                                id, id); 
                        alert("检测到加密锁,请进行登录!"); 
                        //检测到加密锁退出timer 
                        if(document.getElementById("userUK").options[i].value == id){ 
                            window.clearInterval(timer); 
                        } 
                    } 
                } 
            } else { 
                //alert("未找到加密锁!"); 
                document.getElementById("userUK").options.length = 0; 
                document.getElementById("userUK").options[0] = new Option( 
                        ""); 
                return false; 
            } 
        } 
          
          
        //开始检查timer 
        function IA300_StartCheckTimer(interval) 
        { 
            //_TimerErrorMessage  = errMsg; 
           // _ExpireUrl = logonUrl; 
            //定时检测 
            timer = window.setInterval(IA300Find, interval); 
        } 
[javascript]
<span style="white-space:pre">      </span>//当页面加载时运行上述两个js方法 
[javascript] view plaincopy
<span style="white-space:pre">      </span>$(document).ready(function() { 
            OnPageLoad(); 
            IA300_StartCheckTimer(500); 
        }); 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089