2016-09-15 3 views
1

最初のページビューに大きなプロモーションを表示したい場合は、その後に展開可能な最小限のプロモーションのみを表示します。 javascriptの私の条件はdivのスタイルを変更しないようです。テスト用に配置された警告ダイアログが機能し、クッキーが機能しているように見えます。私はJavaScriptの初心者です。divの表示を変更するためにJavaScriptのクッキーを使用

何か助けていただければ幸いです。

<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が起動する前に起動しています。体内のコンテンツの後にスクリプトを配置してみてください。

+0

皆さんはどちらも正しいです、スクリプトはDOMの前にロードされていました。 私はbody onloadを最初に追加しましたが、うまくいきましたが、最初のスクリプトに追加されたdocument.addEventListener( "DOMContentLoaded"、function(event){ - )内にコードをラップして解決しました。 – Brillon

関連する問題