对不起,我是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>
答案 0 :(得分:0)
尝试将window.onload = noCookies()
更改为window.onload = noCookies
。
window.onload
是处理“加载”事件[ref]的事件处理程序,因此如果您将noCookies
函数分配给window.onload
,则会调用该函数当“加载”事件触发时。
但是,在您的代码中,函数的返回值(未定义)已分配给window.onload
,毫无疑问它将无效。