4

我只想在第一次加载网页时显示一个消息框。如果用户刷新,它应该不再显示。无论用户是否已经登录,都应该显示该消息。

cookie 是唯一的方法吗?还是有任何 JavaScript 库可以做到这一点?技术栈是 jQuery /JavaScript 和 PHP。

4

4 回答 4

4

Cookies 不是唯一的方法,你可以使用localStorage,试试这个:

if(localStorage.getItem("firstTime")==null){
   alert("First Time Alert");
   localStorage.setItem("firstTime","done");
}
于 2013-09-11T20:19:43.623 回答
0

这是我有时使用的一个非常好的轻量级插件。

// 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

于 2013-09-11T20:21:44.420 回答
0

如果您有某种方法可以保留用户的状态(如果他们访问过该页面或未访问过该页面),那么您可以将其传递给页面并告诉它显示消息,同时在服务器端将该页面标记为“已访问” (在数据库中,或者您保存该用户/页面数据的任何地方)。

如果您不在任何地方维护该信息,那么您将需要使用 cookie 或 localStorage;但是,此数据可能会丢失(如果用户清除它),然后该消息将再次显示。

于 2013-09-11T20:19:14.957 回答
0

您应该使用服务器端语言(php)来存储会话变量。会话跨页面加载存储数据。

于 2013-09-11T20:16:37.913 回答