突然有了一個顯示倒計時的需求,本來想着小問題,找段js插進去就好了。
<span id="span_dt_dt"></span> <script> function show_time(){ window.setTimeout("show_time()", 1000); BirthDay=new Date('2020 14:12:45');//改成你的計時日期 console.log(BirthDay) today=new Date(); timeold=(BirthDay.getTime()-today.getTime()); sectimeold=timeold/1000 secondsold=Math.floor(sectimeold); msPerDay=24*60*60*1000 e_daysold=timeold/msPerDay daysold=Math.floor(e_daysold); e_hrsold=(e_daysold-daysold)*24; hrsold=Math.floor(e_hrsold); e_minsold=(e_hrsold-hrsold)*60; minsold=Math.floor((e_hrsold-hrsold)*60); seconds=Math.floor((e_minsold-minsold)*60); span_dt_dt.innerHTML=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ; } show_time(); </script>
這個是我從其他大佬哪里拿的,一開始沒跑起來,后來檢查了一下是new Date的時間格式不對,大概是這個樣子,自己再改下
為什么選這個呢,是因為這個帶時分秒
這個在平面頁面上顯示倒ok,當我把時間dom移動到layer.open中,好家伙,問題來了。
layer只讀取第一次在頁面抓取的內容,一開始沒有用html類型的彈出模式。
然我我想着通過layer內置方法或者回調來解決實時刷新的問題
然后拿layer中success的回調打算做點手腳,
在改造過程中,還知道了layero這個東西,其實這個就是彈出層的DOM,
通過
$(layero).find("#span_dt_dt").text($txt)
這個來賦值,好家伙,雖然跑通了但還是不行,依然改變不了靜態的本質。
success: function(layero, index){ // // var form = $(layero).find("#span_dt_dt").text(1232);//獲取子頁面元素 // window.setTimeout("show_time()", 1000); // BirthDay=new Date('2020 14:12:45');//改成你的計時日期 // console.log(BirthDay) // today=new Date(); // timeold=(BirthDay.getTime()-today.getTime()); // sectimeold=timeold/1000 // secondsold=Math.floor(sectimeold); // msPerDay=24*60*60*1000 // e_daysold=timeold/msPerDay // daysold=Math.floor(e_daysold); // e_hrsold=(e_daysold-daysold)*24; // hrsold=Math.floor(e_hrsold); // e_minsold=(e_hrsold-hrsold)*60; // minsold=Math.floor((e_hrsold-hrsold)*60); // seconds=Math.floor((e_minsold-minsold)*60); // // $(layero).find("#span_dt_dt").innerHTML=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ; // $txt=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ; // $(layero).find("#span_dt_dt").text($txt) ; // }
然后就采用了一開始的保底的辦法,就是用layer的ifame這個,就是跳轉到新頁面。然后成功。。。。