先看两个简单的小例子。 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); });
|