2016-02-26 46 views
0

我有一个Drupal 7本地网站,它有一篇文章和导致该文章的第一页上的弹出窗口。在那篇文章中,我也有一个按钮,当用户点击按钮时,网站要“记住”用户并且不再显示弹出窗口。我以为我可以更改按钮的文本并将其存储为cookie。 这是按钮的代码:按钮点击并保存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); 

但是,当我打开网页,弹出的节目如常,但按钮的文本立即从“Press here”更改为“0; Drupal.toolbar.collapsed”。我是一名新的Web开发人员,所以我确定我用于创建/测试cookie的外部代码或外部JavaScript文件的if语句的代码有问题,但我无法发现错误。任何建议或意见?

回答

0

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

0

诀窍是在这里..

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

+0

这是怎么完成的?你的意思是使用PHP?我想编辑这个特定的文章,所以我改变它的HTML代码。这就是为什么我尝试JavaScript –

+0

不,不,请不要去java脚本。这根本不是最好的做法。是的,您需要使用PHP会话来存储值。 –

+0

虽然我不能在文章的html中使用php代码,对吧?那么,我必须更改template.php文件或其他东西?而且,有没有我能做到这一点的例子?我的PHP知识不是很棒,你看。 –