如果禁用cookie,请取消隐藏显示错误的div

时间:2013-06-12 00:37:40

标签: javascript cookies

对不起,我是JavaScript的新手。如果are_cookies_enabled()函数返回false,我想要一个当前具有display:none的div来取消隐藏onload。但是,我的div并没有取消隐藏。如果我将它包装在jquery onload中,它本身就可以工作。我做错了什么?

请注意,noCookies中的函数设置为true(这只是为了查看取消隐藏功能是否正常,因为我启用了Cookie)。

    function are_cookies_enabled()
    {
        var cookieEnabled = (navigator.cookieEnabled) ? true : false;

        if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
        { 
            document.cookie="testcookie";
            cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
        }
        return (cookieEnabled);
    }
    function noCookies()
    {
        if (are_cookies_enabled() == true) {
            document.getElementById('nocookie').style.display='block';
        }
    }
    window.onload = noCookies();

DIV:

<div id="nocookie" style="display:none;"><div class="ec-messages messages-warning">This site may not function properly if cookies are disabled. Session variables are stored in cookies. Please enable cookies.</div></div>

1 个答案:

答案 0 :(得分:0)

尝试将window.onload = noCookies()更改为window.onload = noCookies

window.onload是处理“加载”事件[ref]的事件处理程序,因此如果您将noCookies函数分配给window.onload,则会调用该函数当“加载”事件触发时。

但是,在您的代码中,函数的返回值(未定义)已分配给window.onload,毫无疑问它将无效。