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

Javascript 如何使用cookie仅执行一次JS脚本,javascript,cookies,Javascript,Cookies,我只想在用户第一次看到我的网站时执行此脚本: var applicationId = "MyAppID"; var clientKey = "MyClientKEY"; document.addEventListener("deviceready", function(){ window.parsepushnotification.setUp(applicationId, clientKey); //registerAsPushNotificationClient callback (

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

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);
  }
}
函数setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+expires;
}
函数getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;i在案例中发布此答案。此行:

setCookie("visited", ok, 30);
…可能是问题所在。我在您的页面中没有看到
ok
变量。如果您将其替换为字符串,它可能会工作:

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

另外,
togmstring()
已被弃用;请改用
toutstring()

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

编辑: 另外,正如Jacob所说,您应该是具有非空值的cookie

setCookie("visited", 'ok', 3);
而不是

setCookie("visited", ok, 3);

假设您的目标浏览器支持它(IE8+),我会使用
localStorage
而不是cookies。它更简单。
setCookie(“已访问”,ok,30)
是打字错误吗?什么是
ok
?这应该是字符串
'ok'
?短语“不起作用”对我们没有太大帮助。你在控制台中有JavaScript错误吗?如果没有,脚本具体做了什么与你期望的相反?@levi我怎么做?@Jacob“ok”是cookie的值。我希望当用户访问页面时,他有一个cookie,记住他已经访问了页面,所以上面的JS脚本不会执行。函数checkCookie(){var visted=getCookie(“cookie”);if(visted!=“ok”){alert(“cookie ok”);}else{alert(“创建cookie…”);setCookie('cookie',ok',30);}}你的if语句不是倒过来的吗?应该是
if(visted=='ok')
。目前,你只需要将cookie设置为
'ok'
,如果它已经设置为
'ok'
。我已经尝试过了,但它总是说“创建cookie…”…:/对我有效:。如果我运行一次,它会检测到cookie不存在。第二次,它检测到了。你只是在阻止cookie吗?我在我的Web服务器上上载了该页面,现在它工作得很好…也许这就是问题所在!哈哈哈