在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); 
        }); 

 

發佈留言