0

ユーザーがボタンをクリックするかどうかに応じて div を非表示/表示するこのコードがあります。また、ユーザーがページを更新しても div の状態が変わらないように、状態を記憶する Cookie を設定します。DFP 広告を表示するコードを追加するまで、すべて正常に動作しています。何らかの理由で、使用する iframe がページの更新時に非表示の状態をオーバーライドしています。含まれている div が非表示になっているにもかかわらず、広告が表示されますか?

これが私のコードです。これをソートするための助けをいただければ幸いです:-)

ありがとう

現在はhttp://jsfiddle.net/jamesisapayne/xhzes/

<style>
#billboardButton {
    background-color:#f1f1f1;
    color:#666;
    padding:3px;
    width:100px;
    cursor:pointer;
    text-align:center;
    margin:0 auto;
}
</style>

<!-- Load the latest version of jQuery -->
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<!-- Load the jquery.cookie.js plugin -->
<script src="https://googledrive.com/host/0B7ZDS1Dob8_8WXhpUVdtNjVNdWc/"></script>

<script type='text/javascript'>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
    var gads = document.createElement('script');
    gads.async = true;
    gads.type = 'text/javascript';
    var useSSL = 'https:' == document.location.protocol;
    gads.src = (useSSL ? 'https:' : 'http:') + 
    '//www.googletagservices.com/tag/js/gpt.js';
    var node = document.getElementsByTagName('script')[0];
    node.parentNode.insertBefore(gads, node);
})();
</script>
<script type='text/javascript'>
googletag.cmd.push(function() {
    googletag.defineSlot('/4856165/Forum_Billboard_970x250', [970, 250], 'billboard').addService(googletag.pubads());
    googletag.pubads().setTargeting('SiteType', 'giraffetest');
    googletag.enableServices();
});
</script>

<script>
$(document).ready(function(){
    // Check to see if the billboardStatus cookie has been set
    if($.cookie('billboardStatus')) {
        // If yes, define the variable
        var cook = $.cookie('billboardStatus');
    } else {
        // Else set it as true by default and with an expiry date of 1 day = 24 hours
        var cook = $.cookie('billboardStatus', 'true', {expires: 1});
    }
    // On refresh, if the cookie value is false i.e. the ad spot is closed
    if(cook=='false') {
        // hide the billboard ad spot       
        $('#billboard').hide();
        // Change the open/close button settings
        $("#billboardButton").css("backgroundColor", "#e1e1e1").text('Open Ad');        
    } else { // Else if the value is set as true i.e. open
    // Show the ad spot
    $('#billboard').show();
        // Change the open/close button settings
        $("#billboardButton").text('Close Ad');
    }
    // When the user clciks on the open/close button…
    $('#billboardButton').on('click', function() {
        // Toggle the opening/closing of the ad spot
        $('#billboard').stop().slideToggle('slow', function(){
            // Set the background colour and the text value of the button depending on what state the button is currently in
            $("#billboardButton").css("backgroundColor", $(this).is(':not(:visible)') ? "#e1e1e1" : "").text($(this).is(':visible') ? 'Close Ad' : 'Open Ad');
            // Set the cookie value to false i.e. closed
            $.cookie('billboardStatus', $(this).is(':visible'), {expires:1});
        }); // End slideToggle
    }); // End on click
}); // End document ready
</script>
<div style="width:970px;margin:20px auto;">
    <div id="billboardButton">Close Ad</div>
    <div id='billboard' style='width:970px; height:250px; background-color:#0C9;'>
        <script type='text/javascript'>
            //googletag.cmd.push(function() { googletag.display('billboard'); });
        </script>
    </div>
</div>
4

2 に答える 2