红米手机抢购的js代码


Posted in Javascript onMarch 10, 2014

以下就是小米抢购时的JS代码,分析一下就可以用它实现一个红米抢购软件,大家根据这个代码实现自己想要的功能吧!

hdcontrol({"stime":1381645438,"status":{"allow":false,"miphone":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null},"mibox":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null}}})
function forNum(a){
return 10>a?"0"+a:a
}
function countdown(a,b){
varc=newDate(b).getTime()/1e3,
d=c-a,
e=parseInt(d%60),
f=parseInt(d/60%60),g=parseInt(d/3600%24),
h=parseInt(d/3600/24),
i=[e.toString(),
f.toString(),
g.toString()];
return0>=d?["00小时00分00秒",!0]:h>0?(window._timestr=h+"天"+forNum(i[2])+"时"+forNum(i[1])+"分"+forNum(i[0])+"秒",[h+"<span>天</span>"+forNum(i[2])+"<span>时</span>"+forNum(i[1])+"<span>分</span>"+forNum(i[0])+"<span>秒</span>",!1]):(window._timestr=forNum(i[2])+"时"+forNum(i[1])+"分"+forNum(i[0])+"秒",[forNum(i[2])+"<span>时</span>"+forNum(i[1])+"<span>分</span>"+forNum(i[0])+"<span>秒</span>",!1])}
functionWebEventTrigger(a,b){
try{
if(WE&&WE.trigger)
return"string"!=typeofb&&(b=JSON.stringify(b)),WE.trigger(a,b)
}catch(c){}
return!1
}
functionisApp(){
try{
if(WE)return!0
}catch(a){}
return!1
}
varquickBuy={init:function(){
vara=this;
this.config={},
this.config.hdurl={miphone:"m3/840410D8656D74E5F334591BD8A408A726799AEC13477D90B5E48DAD36547351/4334F49A1EE391261005E8AC5A0C9D2FDA23BB72A2D20AB3F58343496FD4983D/tip_SaledOverAll.html",mibox:"tv/B1CF7B57BFEAE1EBC37700694C123D894C668BF11F6F25D59311FD36942B3D6A/130F1B18D11F53CA1D0147B24E926C5A9B7676E57BE3D47959D6557545E8A339/tip_SaledOverAll.html"
},
this.config.mode="",
this.mode={miphone:!1,mibox:!1},
this.modeModals={miphone:"#modal_miphone",mibox:"#modal_mibox"},
this.modeCookies={miphone:"xm_hd_so_phone",mibox:"xm_hd_so_box"},
this.config.startDate=+newDate("10/15/201312:00:00"),
this.maskLoad=$("#maskLoad"),
this.config.minSignTime=120,
this.results=null,
this.timer=null,
this.timeCount=Math.floor(Math.abs(10*Math.random()-5))+5;
varb=!0;
for(varcinthis.mode)
$.cookie(this.modeCookies[c])||(b=!1),$.cookie(this.modeCookies[c])&&this.saleOut();
b||($.cookie("xm_diff_hd")?(this.config.serverTime=this.localTime()+parseInt($.cookie("xm_diff_hd"),10),this.config.serverTime>=parseInt(this.config.startDate/1e3,10)?$.cookie("xm_hd_so_phone")&&$.cookie("xm_hd_so_box")||this.getData(!0,function(){a.goBuy()}):this.launch()):this.getData())},getData:function(a,b){
varc=this,a=a||null;
b&&(b=b),
$.ajax({
url:"http://tc.hd.xiaomi.com/hdget",
dataType:"jsonp",
jsonpCallback:"hdcontrol",
timeout:7e3,
beforeSend:function(){
c.maskLoad.css("display","block")},
error:function(){
c.maskLoad.css("display","none"),
alert("服务器压力山大,请您重新刷新页面!")
},
success:function(d){
if(c.maskLoad.css("display","none"),"undefined"==typeofd)
returnalert("服务器压力山大,请您重新刷新页面!"),
void0;
if(c.results=d,a||(c.config.serverTime=c.results.stime),!$.cookie("xm_diff_hd")){
vare=parseInt(c.config.serverTime-c.localTime(),10);
$.cookie("xm_diff_hd",e,{
path:"/",
domain:".xiaomi.com",
expires:1
})
}
if(a){
c.initialData();
for(varfinc.mode)
if(c.config[f].hdstart===!1&&c.config[f].hdstop===!0){
varg=c.modeCookies[f];
$.cookie(g,1,{path:"/",domain:".xiaomi.com",expires:1}),
c.saleOut()
}elseb&&b.call()
}
a||c.launch()
}})},
initialData:function(){
this.config.allow=this.results.status.allow,
this.config.mibox=this.results.status.mibox,
this.config.miphone=this.results.status.miphone
},
launch:function(){
this.timeStart(),
this.countdown()
},
timeStart:function(){
vara=this,
b=1e3*a.config.serverTime,
c=a.config.startDate,
d=c-1e3*60*a.config.minSignTime;
b>=d&&c>b&&!isApp()?
$.cookie("userId")?
($("#view_button").css("visibility","hidden"),
$("#purchase_btn_1").html('<aclass="btn_buy"href="http://bbs.xiaomi.cn/thread-8205768-1-1.html">活动详情</a>'),
$("#purchase_btn_2").html('<aclass="btn_buybtn_02"href="javascript:;">已经登录</a>')):a.toLogin():b>=c&&a.toBuy()
},
toLogin:function(){
$("#view_button").css("visibility","hidden"),
$("#purchase_btn_1").html('<aclass="btn_buy"href="http://bbs.xiaomi.cn/thread-8205768-1-1.html">活动详情</a>'),
$("#purchase_btn_2").html('<aclass="btn_buybtn_02"href="javascript:;">提前登录</a>'),
$("#purchase_btn_2").find(".btn_02").on("click",function(){
WebEventTrigger("login",null)||(window.location.href="http://m.xiaomi.com/mshopapi/index.php/v1/authorize/sso?client_id=180100031013&callback="+encodeURIComponent(window.location.href))}
)},
countdown:function(){
vara=this,
b=null,
c=a.config.startDate;
b=a.config.serverTime?a.config.serverTime:parseInt(+newDate/1e3,10);
vard=c-1e3*60*a.config.minSignTime,
e=setInterval(function(){
varf=countdown(b,c);
f[1]?(clearInterval(e),$("#countdown").css("display","none"),a.toBuy()):(1e3*b!=d||isApp()||($.cookie("userId")?($("#view_button").css("visibility","hidden"),
$("#purchase_btn_1").html('<aclass="btn_buy"href="http://bbs.xiaomi.cn/thread-8205768-1-1.html">活动详情</a>'),
$("#purchase_btn_2").html('<aclass="btn_buy"href="javascript:;">已经登录</a>')):a.toLogin()),b++),
$("#countdown").html(f[0])},1e3)},
toBuy:function(){
vara=this;
a.goBuy();
varb=a.modeModals[a.config.mode];
$(b).find(".close").on("click",function(){
$(b).css("display","none"),
window.clearTimeout(a.timer),
a.timer=null})},
saleOut:function(){
vara={miphone:"#purchase_btn_2",mibox:"#purchase_btn_1"},
b={miphone:"http://t.hd.xiaomi.com/r/?_a=payment_check&_m=1",mibox:"http://m.xiaomi.com/index.html#ac=home&op=addcart&product_id=2505"},
c={miphone:"支付小米手机3",mibox:"支付小米电视"};
for(vardinthis.mode)
$.cookie(this.modeCookies[d])&&($(a[d]).html('<aclass="btn_buy"href="'+b[d]+'">'+c[d]+"</a>"),
$(this.modeModals[d]).is(":visible")&&$(this.modeModals[d]).find(".close").click())},
localTime:function(){
vara=parseInt(+newDate/1e3,10);
returna
},
toProcess:function(a){
varb=this,
c=b.timer,
d=b.timeCount||10,e=$(b.modeModals[a]).find(".re_countdown"),
f=$(b.modeModals[a]).find(".modal_btn"),
g=function(){0==d?(f.html('<aclass="into_buy_btn"href="javascript:;">进入活动</a>'),
b.toBuyGo(b.config.mode),
c&&window.clearTimeout(c),
c=null):(e.html("("+d+")"),
d--,
b.timer=window.setTimeout(function(){g()},1e3))};
c&&window.clearTimeout(c),g()},
goBuy:function(){
vara=this,
b={miphone:"购买小米手机3",mibox:"购买小米电视"},
c={miphone:"#purchase_btn_2",mibox:"#purchase_btn_1"};
for(vardina.mode)
$.cookie(a.modeCookies[d])||($(c[d]).html('<aclass="btn_buybtn_buy_go"data-type="'+d+'"href="javascript:;">'+b[d]+"</a>"),
$(c[d]).is(":hidden")&&$(c[d]).css("display","block"));
$("#open_button").find(".btn_buy_go").on("click",function(){a.mode[$(this).attr("data-type")]=!0;
varb=a.config.mode=$(this).attr("data-type");
if($.cookie("userId"))a.getData(!0,function(){
$(a.modeModals[b]).css("display","block"),
$(a.modeModals[b]).find(".close").on("click",function(){
$(a.modeModals[b]).css("display","none"),window.clearTimeout(a.timer),a.timer=null}),a.toProcess(b)});
else{if(WebEventTrigger("login",null))return;
window.location.href="http://m.xiaomi.com/mshopapi/index.php/v1/authorize/sso?client_id=180100031013&callback="+encodeURIComponent(window.location.href)}})},
toBuyGo:function(a){
varb=this;
window.clearTimeout(b.timer),
b.timer=null,
$(b.modeModals[a]).find(".modal_btn").find(".into_buy_btn").on("click",function(c){c.preventDefault(),b.getData(!0,function(){
if($(b.modeModals[a]).css("display","block"),b.config.allow)if(b.config[a].hdurl){
varc="http://t.hd.xiaomi.com/s/"+b.config[a].hdurl+"&_m=1";
window.setTimeout(function(){window.location.href=c},500)
}else{
vard="http://p.www.xiaomi.com/m/activities/open/"+b.config.hdurl[a];
window.setTimeout(function(){window.location.href=d},500)
}elseif(
b.config[a].hdstart===!1&&b.config[a].hdstop===!0){
vard="http://p.www.xiaomi.com/m/activities/open/"+b.config.hdurl[a];
window.setTimeout(function(){window.location.href=d},500)
}else$(b.modeModals[a]).find(".modal_btn").html('<aclass="re_enter"href="javascript:;">重新进入</a>'),
b.toProcess(a)
})})}};

Javascript 相关文章推荐
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
JavaScript中的slice()方法使用详解
Jun 06 Javascript
javascript中使用正则表达式清理table样式的代码
Apr 01 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
详解Angular 4.x NgIf 的用法
May 22 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
Webpack的dll功能使用
Jun 28 Javascript
利用Node.js如何实现文件循环覆写
Apr 05 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 Javascript
按下回车键指向下一个位置的一个函数代码
Mar 10 #Javascript
用js判断输入是否为中文的函数
Mar 10 #Javascript
用IE重起计算机或者关机的示例代码
Mar 10 #Javascript
屏蔽相应键盘按钮操作
Mar 10 #Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 #Javascript
JS中类或对象的定义说明
Mar 10 #Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 #Javascript
You might like
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js字符串转成JSON
2013/11/07 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
python实用代码片段收集贴
2015/06/03 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
PyTorch的torch.cat用法
2020/06/28 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
匡威英国官网:Converse英国
2018/12/02 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
Windows7下FTP搭建图文教程
2022/08/05 Servers