1、获取微信扫描支付对应的二维码 ,并在同时创建定时任务
/*声明一个定时器 amount_price
当前页面以毫秒为计的定时器 self.setInterval
执行的函数wx_pay_status()
每隔多少毫秒进行一次 2000
*/
var amount_price =self.setInterval(function(){wx_pay_status()},2000);
2、在执行函数中
funaction wx_pay_status(){
var pay_id = *** ; //对应的数据库ID
if(pay_id>0){
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)//状态码
{
var res = xmlhttp.responseText;
var res_json = $.parseJSON(res); //转换成JSON格式代码 不推荐使用eval
if(成功){
#操作
window.clearTimeout(weixin_set);//去掉定时器
}else{
#操作
}
}}
//选择POST格式的时候
xmlhttp.open("POST",url,true);
// 设置POST请求的请求头,少了的话,则后台无法接收到参数?
xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
// 发送请求
xmlhttp.send("id="+pay_id);
}else{
var weixin_set=self.setInterval(function(){wx_pay_status()},2000);
}
}
3、回馈成功后去除定时器window.clearTimeout(name);
name=>定时器名称;
#########################################
可防止JS报错定时器并不存在
try{
window.clearTimeout(weixin_set);//去掉定时器
}catch(e){
}
加防判断步骤 判断文本框是否获取焦点
document.activeElement 表示当前活动的元素
要判断的文本框
var my_input = document.getElementById('ID???')
if(my_input== document.activeElement)
{
OK
}
else
{
NO
}