如何使用cookie只执行一次JS脚本

时间:2015-07-27 16:35:35

标签: javascript cookies

我想仅在用户第一次看到我的网站时执行此脚本:

var applicationId = "MyAppID";
var clientKey = "MyClientKEY";
document.addEventListener("deviceready", function(){
  window.parsepushnotification.setUp(applicationId, clientKey);

  //registerAsPushNotificationClient callback (called after setUp)
  window.parsepushnotification.onRegisterAsPushNotificationClientSucceeded = function() {
    alert('Verified!');
  };

  window.parsepushnotification.onRegisterAsPushNotificationClientFailed = function() {
    alert('Not verified, contact an admin.');
  };    
}, false);

我该怎么办?

我尝试使用这种Cookie方法,但它不起作用......

function setCookie(cname,cvalue,exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires=" + d.toGMTString();
  document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
    if (c.indexOf(name) == 0) {
        return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  var visited=getCookie("visited");
  if (visited != "") {
    // NOTHING BECAUSE THE USER VISITED THE PAGE
  } else {
    // EXECUTE JS SCRIPT ABOVE BECAUSE IS THE FIRST TIME THAT THE USER SEE THE PAGE
    setCookie("visited", ok, 30);
  }
}

所以我不明白为什么它不起作用,我试着阅读很多网页来了解它... 非常感谢! :)

2 个答案:

答案 0 :(得分:1)

我觉得你试图在浏览器中运行计算机上的文件。为了使此代码正常工作并正确设置cookie,必须从网络服务器加载页面。

编辑: 此外,正如雅各布所说,你应该是一个非空值的cookie。

setCookie("visited", 'ok', 3);

而不是

setCookie("visited", ok, 3);

答案 1 :(得分:0)

如果是答案,请发布此信息。这一行:

setCookie("visited", ok, 30);

......可能是问题所在。我的页面中没有显示ok变量。如果用字符串替换它,它可能有效:

setCookie('visited', 'ok', 30);

此外,toGMTString()已弃用;请改用toUTCString()