我不知道我做错了什么。它的工作原理只是瞬间显示弹出窗口。超时选项会更好吗?哪个部分是问题?我对Javascript有点新意,所以我真的不知道该找到什么。
<script language="javascript" type="text/javascript">
/** Create a html cookie and set expiry as a day. **/
function createCookie(name,value,days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = date.toGMTString();
document.cookie = name+"="+value+"; expires="+expires+"; path=/";
}
/** Check if already a cookie has been created. **/
function readCookie(name) {
var flag = 0;
var dcmntCookie = document.cookie.split(';');
for(var i=0;i < dcmntCookie.length;i++) {
var ck = dcmntCookie[i];
while (ck.charAt(0)==' ') {
ck = ck.substring(1,ck.length);
}
if(ck) {
cparts = ck.split('=');
if (cparts[0] == name) flag=1;
}
}
if(flag) {
return true;
} else {
return false;
}
}
/** Check if cookie exists else create a new one. **/
function checkCookie(name) {
if (readCookie(name)) {
document.getElementById('google').style.display = "none";
document.getElementById('google').style.visibility = "hidden";
}
else createCookie(name,"cookie 4 the day",1);
}
</script>
<script type="text/javascript">
function closeThisDiv()
{
var openDiv = document.getElementById('google');
openDiv.style.display = 'none';
}
</script>
<body onLoad="checkCookie('MyCookie')"
答案 0 :(得分:0)
如果您的目标是从页面显示的最开始隐藏带有id="google"
的元素(因此它永远不会显示),那么您应该添加一个在头部加载的CSS规则,如下所示:
#google {display: none;}
或者,您应该为HTML本身添加一个样式元素:
<div id="google" style="display:none"></div>
由于您的代码目前已编写,因此听起来它正在按照预期执行。它等待加载整个文档(包括图像),然后用id="google"
隐藏元素。这意味着该项目将在页面加载时短暂显示,然后您的代码将隐藏它。
如果您无法修改Google对象的CSS或HTML,并且您只是尝试使用javascript尽快隐藏它,并且您的网页的HTML中存在Google对象(不是以编程方式添加) ,那么你可以这样做:
<body>
other HTML here
<script>
// script that executes right before the /body tag
checkCookie("MyCookie")
</script>
</body>
这至少不会在隐藏之前等待所有图像加载。
答案 1 :(得分:0)
我这样修好了:
创建display:none的css属性;对于#google
#google{display:none;}
然后切换代码的最后一部分,只有在他们没有cookie时才显示,并创建cookie。
/** Check if cookie exists else create a new one. **/
function checkCookie(name) {
if (readCookie(name)) {
}
else document.getElementById('google').style.display = "inline";
document.getElementById('google').style.visibility = "visibility";
createCookie(name,"cookie 4 the day",1);
如果有人遇到这个问题。为我工作很棒。