【问题标题】:How do I show a message box only the first time a page loads, using JavaScript / jQuery?如何使用 JavaScript / jQuery 仅在第一次加载页面时显示消息框?
【发布时间】:2013-09-11 20:12:35
【问题描述】:

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

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

【问题讨论】:

  • 如果您不必支持旧版浏览器,也可以使用 localStorage
  • 有趣...不知道为什么我没有想到这一点。谢谢。

标签: javascript php jquery browser-cache


【解决方案1】:

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

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

【讨论】:

  • 你打败了我 - 只是快速?如果我创建一个对象并尝试访问一个不存在的属性,为什么它返回 null 而不是 undefined 它返回 undefined 但在这里它返回 null
  • nm 如果你设置 item 它返回 undefined 我猜你 setItem 时
  • 在进行这样的比较时,==nullnull 也代表undefined
  • 啊是的,这就是为什么人们应该使用 === ;-)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        相关资源
        最近更新 更多