本文實例講述了JavaScript使用setTimeout實現延遲彈出警告框的方法。分享給大家供大家參考。具體如下:
先給大家展示一個延遲/定時/強制彈出窗口的JS代碼
參數解釋: 設置時間:Then.setTime(Then.getTime() + 1*60*60*1000) mylove/ttan.htm(過渡網頁) ttan.htm中的 http://彈出網頁/ 是要彈出的網頁 scroll:1(滾動條) status:1(狀態欄) help:1(幫助按鈕) toolbar=1(工具欄) resizable:1(是否可以用鼠標拖動改變大小) dialogWidth:800px(寬度) dialogHeight:600px(高度) 3000(延遲彈出的時間,單位:毫秒。1秒=1000毫秒) <!--彈出廣告--> <script language="JavaScript"> function Get(){ var Then = new Date() Then.setTime(Then.getTime() + 1*60*60*1000) var cookieString = new String(document.cookie) var cookieHeader = "Cookie1=" var beginPosition = cookieString.indexOf(cookieHeader) if (beginPosition != -1){ } else { document.cookie = "Cookie1=POPWIN;expires="+ Then.toGMTString() focusid=setTimeout("focus();window.showModelessDialog('ttan.htm','','scroll:0;status:0;help:0;resizable:0;d ialogWidth:0px;dialogHeight:0px')",3000) window.focus(); } }Get(); </script> <!--彈出結束--> ttan.htm的內容: <script language="javascript"> <!-- window.open("http://彈出網頁/"); //--> </script> <script LANGUAGE="JavaScript"> <!-- setTimeout('window.close();', 0) //--> </script> 可以實現同一IP一定時間內只彈出一次,可以實現延遲彈出,可以實現強制彈出!!
下面的代碼執行後點擊按鈕會延遲彈出一個警告框,主要演示了setTimeout的使用方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>延時顯示提示框</title> <style> #div1 { float: left; width: 60px; height: 60px; background-color: aqua; } #div2 { position: relative; float: left; margin: 0 10px; width: 200px; height: 200px; background-color: #cccccc; display: none; } </style> <script> window.onload = function () { var oDiv1 = document.getElementById('div1'); var oDiv2 = document.getElementById('div2'); var timer = null; // oDiv1.onmouseover = function () { // clearTimeout(timer); // oDiv2.style.display = 'block'; //鼠標移入div1時顯示div2 // }; // // oDiv1.onmouseout = function () { // timer = setTimeout(function () { // oDiv2.style.display = 'none'; //鼠標移除div1時隱藏div2 // }, 500); //為了從div1移入div2,所以移出div1時div2隱藏應該有一個延時設置 // }; // // oDiv2.onmouseover = function () { // clearTimeout(timer); //清除延時器設置,當鼠標移入div2時,div2應當顯示 // }; // // oDiv2.onmouseout = function () { // timer = setTimeout(function () { // oDiv2.style.display = 'none'; //當鼠標移出div2時,div2應當隱藏 // }, 500); //當鼠標移出div2並移入div1時,div2會閃爍一下再顯示,設置一個延時,清除閃爍的效果; // // 但是設置延時器之後,鼠標移入div1時,div2卻隱藏了,原因是setTimeout, // // 應當清除延時器,在oDiv1.onmouseover事件中添加,清除延時器的代碼 // }; // 由於這四個事件中代碼兩兩對應地相同或相似,可以做如下簡化處理: oDiv1.onmouseover = oDiv2.onmouseover = function () { clearTimeout(timer); oDiv2.style.display = 'block'; /* 鼠標移入div1時顯示div2,雖然oDiv2.onmouseover事件中沒有寫oDiv2.style.display = 'block'; 但是實際上oDiv2是'block'狀態,多寫一句代碼沒有實質性影響*/ }; oDiv1.onmouseout = oDiv2.onmouseout = function () { timer = setTimeout(function () { oDiv2.style.display = 'none'; //鼠標移除div1時隱藏div2 }, 500); //為了從div1移入div2,所以移出div1時div2隱藏應該有一個延時設置 }; // 簡化後的代碼執行結果跟前面的代碼效果完全一致. } </script> </head> <body> <h2>延時提示框</h2> <div id="div1"></div> <div id="div2"></div> </body> </html>
延時提示框編寫時需要注意的點都記錄在注釋當中,逐個對照注意一下,這個功能看過視頻教程之後實現起來比較順暢,原因是在編寫代碼之前對所需功能做了一個列表按照列表一一實現,出現問題再進行相應的調整比上來直接寫代碼強多了。