Javascript Cookie脚本不工作

Javascript Cookie脚本不工作,javascript,cookies,Javascript,Cookies,我有一个cookie代码不工作,我不知道问题出在哪里。这个代码在另一个脚本中工作,但不在其中 代码: THnx提前只是一个建议,但您可以这样做: if ( ! localStorage.getItem('visited')) { localStorage.setItem('visited', true); alert('Hello, new visitor !'); } 如果您必须支持较旧的浏览器,您可以添加来自的polyfill,自动返回cookie 编辑: 至于您的原始代码

我有一个cookie代码不工作,我不知道问题出在哪里。这个代码在另一个脚本中工作,但不在其中

代码:


THnx提前

只是一个建议,但您可以这样做:

if ( ! localStorage.getItem('visited')) {
    localStorage.setItem('visited', true);
    alert('Hello, new visitor !');
}
如果您必须支持较旧的浏览器,您可以添加来自的polyfill,自动返回cookie

编辑:

至于您的原始代码,您从未执行过任何函数,如果cookie不存在,它不会返回空字符串,因此逻辑有缺陷,我对其进行了一些修改:

function get_cookie(c_name) {
  var c_value = document.cookie;
  var c_start = c_value.indexOf(" " + c_name + "=");
  if (c_start == -1) {
    c_start = c_value.indexOf(c_name + "=");
  }
  if (c_start == -1) {
    c_value = null;
  }else{
    c_start = c_value.indexOf("=", c_start) + 1;
    var c_end = c_value.indexOf(";", c_start);
    if (c_end == -1) {
      c_end = c_value.length;
    }
    c_value = unescape(c_value.substring(c_start,c_end));
  }
  return c_value;
}

function set_cookie(c_name,value,exdays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  document.cookie=c_name + "=" + c_value;
}

function loadCokie() {
  if ( ! get_cookie('popup')) {
    alert("hello");
    set_cookie('popup', 'yes', 30);
  }
}

loadCokie();

什么不起作用?尝试此操作时是否出现错误?代码中存在一些问题。首先,
if(offset!=-1)
应该是
if(offset!=-1)
。其次,您没有考虑多个cookie。如果存在多个cookie,则您的
document.cookie
将类似于
popup=bob;cookie2=比尔,因此您需要检查是否存在
并首先在那里拆分,然后获取具有所需名称的代码,然后在
=
处拆分该代码控制台中不会显示错误,但不会打开警报's@SpYk3HH我将if(offset!=-1)
更改为
(offset!=-1)
,但没有发生任何事情,正如我提到的,这只是一个小问题。下一部分是处理字符串。转到if语句内的第一行(因为它将通过),并添加行
console.log(document.cookie)
然后检查控制台并查看出现的字符串。这是需要分解的字符串类型,但是如果只看到一个cookie,那么需要将该字符串保存在某个位置,添加另一个cookie,然后再看一看,看看我之前提到的不同点。thnxx..它在工作,我如何在退出时打开弹出窗口。使用
onUnload
可以吗?您好..我如何在窗口关闭时打开弹出窗口我尝试过,但没有任何效果
window.onbeforeuload=function(){loadSound();}你不能,你所能做的就是打开带有自定义消息的标准确认框,其他任何东西都不能工作,因为这会让人恼火,你可以在显示广告或其他自定义弹出内容时阻止浏览器重定向。
function get_cookie(c_name) {
  var c_value = document.cookie;
  var c_start = c_value.indexOf(" " + c_name + "=");
  if (c_start == -1) {
    c_start = c_value.indexOf(c_name + "=");
  }
  if (c_start == -1) {
    c_value = null;
  }else{
    c_start = c_value.indexOf("=", c_start) + 1;
    var c_end = c_value.indexOf(";", c_start);
    if (c_end == -1) {
      c_end = c_value.length;
    }
    c_value = unescape(c_value.substring(c_start,c_end));
  }
  return c_value;
}

function set_cookie(c_name,value,exdays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  document.cookie=c_name + "=" + c_value;
}

function loadCokie() {
  if ( ! get_cookie('popup')) {
    alert("hello");
    set_cookie('popup', 'yes', 30);
  }
}

loadCokie();