2013-02-15 45 views
0

我不知道我做錯了什麼。它的工作原理是隻顯示分秒的彈出窗口。超時選項會更好嗎?哪部分是問題?我有點新的Javascript,所以我不知道要找什麼。我的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

如果你的目標是有id="google"元素從頁面顯示的開始隱藏的(所以它永遠不會顯示),那麼你應該添加一個CSS規則載荷頭部這樣:

#google {display: none;} 

或者,你應該在風格元素添加到HTML本身:

<div id="google" style="display:none"></div> 

當你的代碼被寫入時,它聽起來像是在做它應該做的事情。它會等待整個文檔加載(包括圖像),然後用id="google"隱藏該元素。這意味着該項目將在頁面加載時短暫顯示,然後您的代碼將隱藏它。

如果您無法修改CSS對象或HTML對象,並且您只是想盡快用javascript隱藏它,並且Google對象存在於您的頁面的HTML中(不是通過編程方式添加的),那麼你可以這樣做:

<body> 
other HTML here 

<script> 
// script that executes right before the /body tag 
checkCookie("MyCookie") 
</script> 

</body> 

這將至少不會等待所有圖像加載之前加載它。

0

我是這樣修復的:

創建一個css屬性display:none; #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); 

萬一有人遇到這個問題。爲我工作很好。

相關問題