2012-12-20 60 views
2

有沒有一種方法來顯示一個警示框隻字面上只顯示一次,即當用戶點擊網站,然後當他們瀏覽通過它不再出現?Javascript:警告框只有一次當用戶登陸

+1

顯示該提醒,創建一個cookie。如果cookie存在,不要顯示警報。 – sbeliv01

+4

*「有沒有一種方法可以只顯示一次警報框,即當用戶點擊該網站時,那麼當他們瀏覽它時不會再出現?」*繼續並在每個頁面上發出警報。任何合理的訪問者只會看到一次提醒,因爲在訪問該頁面時收到了提醒,他們將完全離開該網站。 –

+0

我使用代碼將駐留在其中的佈局。用戶轉到網站中的不同佈局,如果他們回到主佈局,他們將再次看到警報。 –

回答

6

例如,你可以設置一個localStorage propertie像

if(!localStorage["alertdisplayed"]) { 
    alert("Your text") 
    localStorage["alertdisplayed"] = true 
} 

注意localStorage的不被舊版本瀏覽器的支持,如blazemonger注意 - Compatibility List

另一種方法是設置一個Cookie並檢查它的存在

如果你不知道如何設置/獲取cookies與JavaScript,我會建議,閱讀是關於MDN的文章

+3

...這將無法正常工作瀏覽器。 – Blazemonger

+0

這對用戶來說會很好,因爲他不會受到警報的干擾;) thx,我會更新答案,指出 – C5H8NNaO4

+0

這是一個很好的答案,直到w3school被提及。 ; - \ [mdn cookies](https://developer.mozilla.org/en-US/docs/DOM/document.cookie)也有幫助。 –

0

您可以在用戶第一次登錄網站時放置一個非常大的失效日期的cookie。然後,您可以檢查該cookie的存在,並僅在警報框不存在時才顯示。

0

是的。您可以使用Cookie,本地存儲,數據庫條目或會話變量(或組合)來確定他們是否已經看到/放棄了通知。

雖然cookie或本地存儲是您處理JavaScript的唯一選項。 (請記住,雖然本地存儲仍然是「新」,但並非所有瀏覽器都實現或支持它)。您可以使用AJAX並將標誌存儲在服務器上(但這取決於您的設置和可用的資源)。

0

而不是一個警告框,你應該考慮使用通知區域。然後使用cookie來防止通知出現的頻率越高。

3

您可以檢查cookie是否存在,如果未找到,則顯示警報並設置一個在很長時間後過期的cookie。這樣的事情:

if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) { 
    alert("Hello world"); 
    document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365; 
} 

PS:我不知道如果正則表達式是防彈。和餅乾可以......刪除。

+1

+1之前從來沒有知道這個問題最後是對他的問題的正常答案,而不僅僅是對警報的看法 –