簡體   English   中英

如何在第一次加載頁面時使用JavaScript / jQuery顯示消息框?

[英]How do I show a message box only the first time a page loads, using JavaScript / jQuery?

我想顯示一個消息框 ,只是第一次加載網頁。 如果用戶刷新,則不應再顯示。 無論用戶是否已登錄,都應顯示該消息。

Cookie是唯一可以做到這一點的方法,還是有任何JavaScript庫可以解決這個問題? 技術堆棧是jQuery / JavaScript和PHP。

Cookies不是唯一的方法,你可以使用localStorage ,試試這個:

if(localStorage.getItem("firstTime")==null){
   alert("First Time Alert");
   localStorage.setItem("firstTime","done");
}

您應該使用服務器端語言(php)來存儲會話變量。 會話在頁面加載中存儲數據。

如果您有某種方法可以保留用戶的狀態(如果他們已經訪問過該頁面),那么您可以將其傳遞給頁面並告訴它在服務器端將頁面標記為“已訪問”時顯示該消息(在數據庫中,或者保存該用戶/頁面數據的任何位置)。

如果您沒有在任何地方維護該信息,那么您將需要使用cookie或localStorage; 但是,此數據可能會丟失(如果用戶清除它),然后該消息將再次顯示。

這是一個非常好的輕量級插件,我有時使用。

// plugin start //
    // First Time Visit Processing
    // copyright 10th January 2006, Stephen Chapman
    // permission to use this Javascript on your web page is granted
    // provided that all of the below code in this script (including this
    // comment) is used without any alteration
    function rC(nam) {var tC = document.cookie.split('; '); for (var i = tC.length - 1; i >= 0; i--) {var x = tC[i].split('='); if (nam == x[0]) return unescape(x[1]);} return '~';} function wC(nam,val) {document.cookie = nam + '=' + escape(val);} function lC(nam,pg) {var val = rC(nam); if (val.indexOf('~'+pg+'~') != -1) return false; val += pg + '~'; wC(nam,val); return true;} function firstTime(cN) {return lC('pWrD4jBo',cN);} function thisPage() {var page = location.href.substring(location.href.lastIndexOf('\/')+1); pos = page.indexOf('.');if (pos > -1) {page = page.substr(0,pos);} return page;}
// plugin finish //


// example code to call it - you may modify this as required
function start() {
   if (firstTime(thisPage())) {
      // this code only runs for first visit
      alert('welcome');
   }
   // other code to run every time once page is loaded goes here
}
onload = start;

示例http://javascript.about.com/library/blfirst1.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM