[英]Make popup opening after a while even if the user is navigating to other page
我需要一些關於這個javascript代碼的幫助。
我有這個代碼:
jQuery(document).ready(function(){
if (document.cookie.indexOf('visited=true') == -1) {
var fifteenDays = 1000*60*60*24*1;
var expires = new Date((new Date()).valueOf() + fifteenDays);
document.cookie = "visited=true;expires=" + expires.toUTCString();
window.setTimeout(
function() {
jQuery.colorbox({href:"/popup.htm", open:true, iframe:false, innerWidth:600, innerHeight:490});
},
30000 )}});
它應該在30秒后打開一個彈出窗口,每天一次。 問題是彈出窗口在停留在頁面上30秒后打開。 即使客戶端導航到其他頁面,它有沒有辦法讓它在30秒后打開? 因此,如果用戶在頁面上停留15秒而在另一頁上停留15秒,則獲取彈出窗口。
先感謝您
是。
但是使用document.cookie
是不可能的。
您需要使用服務器端cookie或HTML本地存儲/會話存儲。
像Response.SetCookie("Visited", true)
。 我不知道你用什么作為后端。
沒門。 卸載頁面后,您無法執行任何其他操作。 您需要使用服務器上的其他資源(cookie,會話等)來檢查窗口是否已經顯示。
這里需要克服的根本問題是在頁面之間傳遞“狀態”。 由於您已經在示例中使用了Cookie,因此我們將使用它。 您需要設置一個會話cookie,其中包含用戶訪問該站點的時間(最初為0)。 然后,您需要每隔一段時間(可能每5秒)“輪詢”一次cookie,以更新網站計數的總時間,並將其讀回。 如果是30秒或更長時間,則觸發彈出窗口。
所以不要使用:
setTimeout(function() {
// open alert box
}, 30000);
你會做類似的事情:
setTimeout(function() {
// Increment 'time-on-site' cookie value by 5000
// Then, if 'time-on-site' cookie value >= 30000, fire popup
}, 5000);
更新當然,這需要更多來回服務器,因為您需要每5秒傳遞一次更新的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.