2012-08-03 92 views
1

我正在構建這個小的cookiecript,它在單擊按鈕時創建一個cookie,然後隱藏該消息。JavaScript:未捕獲TypeError:無法讀取屬性'樣式'null

但現在我建立隱藏消息(DIV#餅乾),當餅乾被SEET功能,但我得到這個錯誤每次,但我的DIV確實存在:

Uncaught TypeError: Cannot read property 'style' of null 

現在這些都我正在使用的腳本,任何人都可以幫忙嗎? :)

<script type="text/javascript"> 
     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); 
     } 
     </script> 

而這一點,在那裏,曾經的 'hidediv' 給出了錯誤,但沒有工作的一個按鈕,當點擊:

<script type="text/javascript"> 
      function hidediv() { 
       if (document.getElementById) { 
        document.getElementById('cookie').style.visibility = 'hidden'; 
        createCookie('uscnCookieScriptJS','uscninternetservicescookiescriptjavascriptversion',365) 

       } 
       else { 
        if (document.layers) { 
         document.hideShow.visibility = 'hidden'; 
         createCookie('uscnCookieScriptJS','uscninternetservicescookiescriptjavascriptversion',356) 
        } 
        else { 
         document.all.hideShow.style.visibility = 'hidden'; 
         createCookie('uscnCookieScriptJS','uscninternetservicescookiescriptjavascriptversion',356) 
        } 
       } 
      } 

      function showdiv() { 
       if (document.getElementById) { 
        document.getElementById('cookie').style.visibility = 'visible'; 
       } 
       else { 
        if (document.layers) { 
         document.hideShow.visibility = 'visible'; 
        } 
        else { 
         document.all.hideShow.style.visibility = 'visible'; 
        } 
       } 
      } 
     </script> 
     <script type="text/javascript"> 
     if (document.cookie.indexOf("uscnCookieScriptJS") >= 0) { 
      alert("yes"); 
      hidediv(); 
     } 
     else { 
      alert("no"); 
     } 
     </script> 

該腳本可以在這裏找到:http://dev.uscn.nl/cookiescript/v2/

+0

您在HTML中沒有元素hideShow,但這隻會在不支持的瀏覽器中導致錯誤getElementById – 2012-08-03 09:20:25

+1

不支持getElementById(srsly?)的瀏覽器只會引發getElementById不是函數或類似錯誤。你不會看到風格是空的或任何。 – Esailija 2012-08-03 09:23:50

+0

也許,問題是你在加載實際的HTML內容之前調用javascript函數.. – 2013-09-25 20:51:51

回答

4

問題是,在加載實際的HTML內容之前,您正在調用hidediv()函數。將腳本放在文檔末尾(在關閉body標記之前)或將其設置爲window.onload /在文檔準備就緒時

相關問題