2016-09-15 72 views
1

我希望能够为第一个页面视图显示大型促销,然后才显示可扩展的最小化促销。看来,我在JavaScript条件不会改变divs的风格。警报对话框(放置用于测试)确实有效,cookie看起来正在运行。我是一个JavaScript新手。Javascript Cookie用于更改divs的显示

任何帮助表示赞赏。

<script> 
if (document.cookie.indexOf('visited=true') == -1) { 
var oneDay = 1000*60*60*24*1; 
var expires = new Date((new Date()).valueOf() + oneDay); 
document.cookie = "visited=true;expires=" + expires.toUTCString(); 
alert('We can show the large promo because this is the first page view for today.'); 
} else { 
alert('We\'ve already shown the large promo, we will show a much smaller expandable promo.'); 
document.getElementById('promo').style.display='none'; 
document.getElementById('promo-reduced').style.display='block'; 
} 
</script> 

<div id="promo-reduced" style="display:none;"> 
<a onclick="show();"> <img src="/images/small_icon.gif" height="26" width="48" border="0" align="left" />Learn about this product.</a> 
</div> 

<div id="promo" style="display:block;"> 
<a onclick="conceal();">Close</a> 
<a href="/learn-more.html" target="_blank" onclick="conceal();"><img src="/images/large-promo.jpg" border="0" /></a><br /> 
</div> 
+0

脚本在HTML放置在页面上之前执行。您应该将上面的脚本放在HTML代码下面。我希望你在'document.onload'上执行脚本 – Panther

回答

0

您的代码似乎可以正常工作,但JavaScript在DOM准备好之前就会触发。尝试将脚本放在正文内容后面。

+0

你们都是正确的,脚本在DOM之前加载。 我第一次添加了一个正文onload,并且工作,但是决定把我的代码封装在document.addEventListener(“DOMContentLoaded”,function(event){ - 它被添加到第一个脚本中。 – Brillon