2013-06-27 43 views
0

當我第一次進入頁面時,我想讓我的html頁面出現一個歡迎對話框。我不希望每次加載頁面時出現對話框。我只知道HTML,CSS和JavaScript。是否有可能停止每次出現此對話框?如何使html/javascript出現一次的歡迎對話框?

<body onload="welcome()"> 
    <h1> Hellow World /h1> 
    <script> 
      function welcome(){ 
    alert(" WELCOME TO Music.COM"); 
     } 
    </script> 
    </body> 

每次我重新加載頁面時,歡迎框會再次出現。我如何阻止它?

+8

閱讀有關餅乾 – sachleen

+3

的http:// www.w3schools.com/js/js_cookies.asp – abc123

+0

你能幫我一個例子嗎? – Giliweed

回答

1

DEMO:http://jsfiddle.net/abc123/JYsdN/1/

編輯:添加評論

JS:

//Gets the cookie with given c_name taken from w3school 
function getCookie(c_name) { 
    var c_value = document.cookie; 
    var c_start = c_value.indexOf(" " + c_name + "="); 
    if (c_start == -1) { 
     c_start = c_value.indexOf(c_name + "="); 
    } 
    if (c_start == -1) { 
     c_value = null; 
    } else { 
     c_start = c_value.indexOf("=", c_start) + 1; 
     var c_end = c_value.indexOf(";", c_start); 
     if (c_end == -1) { 
      c_end = c_value.length; 
     } 
     c_value = unescape(c_value.substring(c_start, c_end)); 
    } 
    return c_value; 
} 

//Sets the cookie with given c_name to given value for exdays taken from w3school 
function setCookie(c_name, value, exdays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
    document.cookie = c_name + "=" + c_value; 
} 

//Function for GUID creation 
function s4() { 
    return Math.floor((1 + Math.random()) * 0x10000) 
      .toString(16) 
      .substring(1); 
}; 

//Function for GUID creation 
function guid() { 
    return s4() + s4() + '-' + s4() + '-' + s4() + '-' + 
     s4() + '-' + s4() + s4() + s4(); 
} 

//Checks if the user has the cookie 
function checkCookie() { 
    //attempts to get the cookie 
    var user = getCookie("user"); 
    //If the user doesn't have a cookie 
    if (user == null || user == "") { 
     //Welcome them 
     alert("Welcome!!!"); 
     //Create a GUID 
     user = guid(); 
     //Set the user's cookie to their GUID expiring in 365 days 
     if (user != null && user != "") { 
      setCookie("user", user, 365); 
     } 
    } 
} 

//on document.ready call checkCookie 
checkCookie(); 
0

您可以製作一個cookie,直到頁面上的用戶會話結束。這樣,如果他們刷新頁面,他們的會話將不會結束,並且該框不會顯示。這裏是一個簡單的餅乾教程的鏈接http://www.w3schools.com/js/js_cookies.asp

+3

請不要參考w3schools([w3fools](http://www.w3fools.com/))網上有更好的資源。 –

3

這好像這是一個問題,因爲JS只能將數據存儲在Sessions/Cookies中,不會永遠持續,但有一種方法我可以想到(Cookie除外) 。您可以使用localStorage來保存用戶已經看到對話框。

或者你可以開始學習node.js - 它的Javascript,但服務器端編程。

0

只需使用html和javascript,就需要使用cookie。

設置cookie並顯示div如果尚未訪問該網站。否則什麼都不做。

http://jsfiddle.net/Qm58q/

var cookie = "myCookies"; 
    if(!getCookie(cookie)){ 
     document.getElementById('welcome').className = "show"; 
     setCookie(cookie,"true",1) 
    } 


showWelcome(); 
1

在過去,我已經使用了jQuery cookie plugin。下面就是一個例子,以代碼是什麼樣子:

//check for cookie - https://github.com/carhartl/jquery-cookie 
if ($.cookie('FirstTime') !== 'close') { 

    //show promo pop-up 

    $('.promoCloseButton').click(function() { 

     //hide promo 

     //set cookie on close 
     $.cookie('FirstTime', 'close', { 
     path : '/', 
     expires : 120 
     }); 

    }); 

    } 
+0

這個問題沒有用jQuery標籤標記,請避免使用用戶沒有請求的框架。 – abc123

+0

我還沒有學習jQuery。 – Giliweed