2012-01-31 75 views
0

我做了一個邊欄,它是爲了顯示所有時間,只有當它被點擊時它纔會隱藏。但是如果我刷新頁面後隱藏了它,它會再次顯示。所以我想保持設置,所以如果用戶隱藏它,它不會出現,直到他按下顯示按鈕無關緊要頁面刷新或他轉到另一個頁面。如何保持顯示/隱藏邊欄的設置

(例如像它保持隱藏或顯示不事關了頁面刷新或任何Facebook的右chatbar)

我想在JS的一些變化會做的工作,但林不知道&不是一個編碼器,從而幫助我這樣做。

JS代碼我使用:

<script language=javascript type='text/javascript'> 
function hideDiv() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
     document.getElementById('hideShow').style.visibility = 'hidden'; 
    } else { 
     if (document.layers) { // Netscape 4 
      document.hideShow.visibility = 'hidden'; 
     } else { // IE 4 
      document.all.hideShow.style.visibility = 'hidden'; 
     } 
    } 
} 

function showDiv() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
     document.getElementById('hideShow').style.visibility = 'visible'; 
    } else { 
     if (document.layers) { // Netscape 4 
      document.hideShow.visibility = 'visible'; 
     } else { // IE 4 
      document.all.hideShow.style.visibility = 'visible'; 
     } 
    } 
} 
</script> 

HTML和CSS

<div id="hideShow" ..etc> 
    My content 
</div> 

,這調用JavaScript來隱藏:

<a href="javascript:hideDiv()">Hide Div</a> 

,這表明它:

<a href="javascript:showDiv()">show Div</a> 
+1

你可以使用一個Cookie – MCSI 2012-01-31 17:34:06

+0

是否有必要支持IE4-6,NS4-6?微軟甚至不支持IE6 ... – 2012-01-31 17:38:01

+0

@josh不,我只是複製了代碼,所以它是在2004年寫的,所以這就是爲什麼它是這樣編碼 – ledokt 2012-02-01 06:38:18

回答

1

您需要一個javascript類來讀取和寫入cookie。這樣,當用戶與它進行交互時,您可以在Cookie中寫入邊欄的狀態。當頁面加載時,您從Cookie中讀取狀態,並相應地設置可見性。

+0

啊我需要讀寫廚師感謝回覆即時嘗試。 .. – ledokt 2012-01-31 18:03:55

0

您需要將條的可見性狀態保存在某個變量中。既然你使用(我假設)只有JS,你可能需要訪問用戶的cookies。

如何在JS設置cookie:http://www.javascripter.net/faq/settinga.htm 如何在JS讀一個Cookie:http://www.javascripter.net/faq/readinga.htm

+0

雅我想知道我現在如何保存一個變量的酒吧知名度的狀態,並從廚師讀取 – ledokt 2012-01-31 18:19:14

+0

您是否遵循我的鏈接?他們有兩個。一個向你展示如何設置一個cookie。另一個顯示如何閱讀一個cookie。一旦你可以設置和讀取值,你可以使用javascript來隱藏/顯示欄。另外,如果我的回答對你沒有意義,那麼在做這件事之前,你真的需要理解你正在做的事情。 – Dutchie432 2012-01-31 22:55:35

2

像這樣的事情!在這裏你有一個函數來讀取cookie,因爲設置一個cookie很容易,但讀取它不多。

readCookie = function (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 "es"; 
    } 

function hideDiv() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
    document.getElementById('hideShow').style.visibility = 'hidden'; 
    } 
    else { 
    if (document.layers) { // Netscape 4 
    document.hideShow.visibility = 'hidden'; 
    } 
    else { // IE 4 
    document.all.hideShow.style.visibility = 'hidden'; 
    } 
    } 
document.cookie = 'show=false'; 
} 

function showDiv() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideShow').style.visibility = 'visible'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.hideShow.visibility = 'visible'; 
} 
else { // IE 4 
document.all.hideShow.style.visibility = 'visible'; 
} 
} 
document.cookie = 'show=true'; 
} 

if(readCookie('show') == "true"){ 
showDiv(); 
} 
else { 
hideDiv(); 
} 

好運

+0

我複製了所有的功能和修改,所以你可以替換你所有的代碼 – MCSI 2012-01-31 18:18:35

+0

我被替換,但沒有工作,因爲我想我沒有設置cookie,所以我如何創建和設置cookie的狀態第一次cookie – ledokt 2012-01-31 18:59:22

+0

不存在,所以「readCookie('show')==」true「」將會是false,所以它會執行hideDiv()。當您執行showDiv()時,cookie將更改爲「true」。 – MCSI 2012-01-31 19:19:45

相關問題