由cookie隐藏的div仅在IE中重新打开

时间:2015-05-06 08:09:03

标签: javascript jquery css cookies jquery-cookie

javascript不是我的强项,所以在正确的方向提供任何帮助或帮助都会非常感激!

基本上我有一个div隐藏在我的页面上,只有当他们是根据cookie设置的新访问者时才会向用户显示但是它似乎在firefox和chrome中都运行良好但在点击时使用IE关闭按钮页面跳回到顶部并显示隐藏的div(这不应该,它应该保持隐藏)

HTML

<div id="theLink">
<?php if($this->countModules('tekenin2')) : ?>
<div id="gototop">
  <div id="popup"><a href="#" onclick="parentNode.remove();return false; "><img src="/templates/marktoe/images/close.png" id="close" class="close" border="0" alt="close" /></a>
    <jdoc:include type="modules" name="tekenin2" style="xhtml" />
  </div>
</div>
<?php endif; ?>

脚本1

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function setTheDivStyle() { // body on load event
    if (!readCookie('visited')) {

        // if cookie not found display the div and create the cookie
        document.getElementById("theLink").style.display = "block";
        createCookie('visited', 'visited', 1); // 1 day = 24 hours persistence
    } else {
        // if cookie found hide the div
        document.getElementById("theLink").style.display = "none";
    }
}

脚本2 - 我怀疑问题在于说谎但我可以确定

window.addEvent('domready',function() {
    /* smooth */
    new SmoothScroll({duration:500});
    /* link management */
    $('theLink').set('opacity','0').setStyle('display','block');

    /* scrollspy instance */
    var ss = new ScrollSpy({
        min: 10,
        onEnter: function(position,enters) {
            //if(console) { console.log('Entered [' + enters + '] at: ' + position.x + ' / ' + position.y); }
            $('theLink').fade('in');
        },
        onLeave: function(position,leaves) {
            //if(console) { console.log('Left [' + leaves + '] at: ' + position.x + ' / ' + position.y); }
            //value below was #gototop div
            $('theLink').fade('out');
        },
        onTick: function(position,state,enters,leaves) {
            //if(console) { console.log('Tick  [' + enters + ', ' + leaves + '] at: ' + position.x + ' / ' + position.y); }
        },
        container: window
    });

});

我需要隐藏div,使用cookie检查用户是新用户还是返回用户,如果新显示div其他隐藏它。

任何提示或建议都会非常感激,就像我说这不是我的强项,我觉得我错过了一些基本的东西。我浏览了多个其他线程试图绕过它,但无济于事。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

在HTML中,替换

parentNode.remove();

this.parentNode.parentNode.removeChild(this.parentNode);

如果你想删除整个div,你可能必须上去(添加更多.parentNode) - 当前代码删除了弹出div。