我有一个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语句的代码有问题,但我无法发现错误。有什么建议或意见吗?
答案 0 :(得分:1)
案件结案! 我所要做的就是在第一个脚本中使用JavaScript中的localStorage,然后在外部js文件中测试它以创建弹出窗口!
答案 1 :(得分:0)
特里克在这里..
请将其存储在服务器端并在每个页面上运行检查,而不是在客户端存储值。