如果存在cookie,则运行函数

时间:2016-07-20 20:07:49

标签: javascript jquery cookies

好的,我是javascript编码,cookies等新手,我无法在网上找到问题的答案。我正在尝试创建一个具有div的网站,该网站在顶部显示一些有用的信息。

<div id="helpdiv">
<!--This content shows only on web browsers Internet Explorer 6/7/8/9/10/11 and Microsoft Edge.-->
Looks like your using Internet Explorer/Edge. This site is optimized when "Compatibility Mode" is disabled. Thank you!
</div>

我找到了一些我可以使用的代码,它将显示这个div 8秒,然后消失。但我希望这只出现一次。

function closeHelpDiv(){
 document.getElementById("helpdiv").style.display=" none";
 }

 // close the div in 8 secs
 window.setTimeout( closeHelpDiv, 8000 );

我想如果使用了cookie,那么浏览器可以检查该cookie,如果它存在,那么它就不需要显示div。只是他们第一次访问该网站。

所以这就是我试图实现的目标:

  1. 检查名为“helpText”的cookie

  2. 如果cookie不存在:

  3. 我希望在显示8秒后运行一个隐藏div(id =&#34; helpdiv&#34;)的函数。

    以下是我发现隐藏div的一些代码:

     function closeHelpDiv(){
     document.getElementById("helpdiv").style.display=" none";
     }
    
     // close the div in 8 secs
     window.setTimeout( closeHelpDiv, 8000 );
    

    然后我想设置一个名为“helpText”的网站cookie,以便下次访问该网站时,该功能不会再次运行。

    1. 如果存在cookie:
    2. 我希望ID为“helpdiv”的div具有style =“display:none;”

      如果我需要添加更多代码,请告诉我,我可以解释更多。任何帮助都会成为救生员!

4 个答案:

答案 0 :(得分:1)

您可以检查当前网络文档中的Cookie,如下所示:

document.cookie

因此,如果您计划检查特定字符串,可以使用您要查找的单词执行indexOf(“”)并验证索引是否大于0.

if(document.cookie.indexOf("helpText") > 0 ){
   the cookie was found, so your function should be here
}else{
   cookie not found
}

通过Stackoverflow进行搜索可能更好,因为有很多关于cookie和javascript的答案:

这是一个完整的答案: Check if cookie exists else set cookie to Expire in 10 days

答案 1 :(得分:0)

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

Get cookie by name

用它来检查cookie是否存在。 在您的代码中,您可以轻松地

 if(getCookie('helpText')!=''){
   $('selector').css('attrib','prop');
 }

答案 2 :(得分:0)

根据Lemmy的回答,这就是你所需要的:

pd.to_datetime(df.iloc[:, 1], format='%d/%m/%y %H:%M:%S')

以下是wordpress环境的更新脚本:

val decryptedDFData = sqlContext.read.json(patientTable.select("data").map(row => decrypt(row.toString())))  

在Wordpress中,您必须使用 jQuery 更改$ sign并将$符号传递给函数。 DECLARE @TABLE TABLE (COL NVARCHAR(MAX)) insert @TABLE values ('[E=110][D=1]'), ('[E=110][D=NE]'), ('[E=110][D=U$]'), ('[E=110][D=FX]') 中的美元符号不用于与其他库的兼容性。

答案 3 :(得分:0)

因此,您需要在首次访问后向用户显示横幅后设置Cookie -

function closeHelpDiv(){
    document.getElementById("helpdiv").style.display=" none";
    document.cookie="visitedBefore=true; expires=1 Jan 9999 12:00:00 UTC; path=/";
}

如果该用户已访问过您的网站,请检查以下代码

function showBanner(){
    // check if visited Earlier
    if(!getCookie('visitedBefore'))){
        window.setTimeout( closeHelpDiv, 8000 );
    }   
}

function getCookie(name) {
   var value = "; " + document.cookie;
   var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

  showBanner();

所以你正在做所有事情只是使用如上所述的cookie。