按钮onclick并在Drupal 7上保存cookie

时间:2016-02-26 00:38:10

标签: javascript jquery cookies drupal-7

我有一个Drupal 7本地网站,在第一页上有一篇文章和一个弹出窗口,指向该文章。在那篇文章中,我还有一个按钮,我希望当用户点击按钮时,网站会记住"用户而不是再次显示弹出窗口。我以为我可以更改按钮的文本并将其存储为cookie。 这是按钮的代码:

<button id="test" value="test" onclick="Press()">Press Here</button>
<script>
function Press() {
    var test= document.getElementById("test");
    test.innerHTML="Thank you";
    document.cookie = "Inner"= + test.value +"; expires=Fri, 5 Aug 2016 01:00:00 UTC;";}
</script>

这是处理弹出窗口的外部js文件的代码:

      function openColorBox(){

if (document.cookie.length != 0){
   var buttonvaluearray = document.cookie.split("=");
   document.getElementById("test").innerHTML = buttonvaluearray[1];
}

if (test.innerHTML != "Thank you"){
        document.getElementById("popup").style.visibility = "visible";
        document.onclick= function(){
        document.getElementById("popup").style.visibility = "hidden";
    }
  }
}
    setTimeout(openColorBox, 5000);

但是当我加载页面时,弹出窗口像往常一样显示,但按钮的文本会立即从&#34;按此处&#34;到&#34; 0; Drupal.toolbar.collapsed&#34 ;.我是一个新的Web开发人员,所以我确定我用于cookie创建/测试或外部javascript文件的if语句的代码有问题,但我无法发现错误。有什么建议或意见吗?

2 个答案:

答案 0 :(得分:1)

案件结案! 我所要做的就是在第一个脚本中使用JavaScript中的localStorage,然后在外部js文件中测试它以创建弹出窗口!

答案 1 :(得分:0)

特里克在这里..

请将其存储在服务器端并在每个页面上运行检查,而不是在客户端存储值。