判斷瀏覽器是否支援javascript和Cookies

來源:互聯網
上載者:User
cookie|cookies|瀏覽器

  判斷訪問者的瀏覽器是否支援javascript和Cookies

  許多網站需要用戶端做許多複雜的工作,比如:用用戶端 JavaScript 進行資料合法性校正,這需要客戶瀏覽器的JavaScript enabled;使用 Session 變數記錄身份等資訊,需要瀏覽器 Cookies enabled。因此,有必要確定使用者瀏覽器中的這些選項被開啟。在我的網站中,我使用了一串簡潔的代碼實現這些功能,在使用者登入時進行檢查,如果不符合就不讓登入。在本文中,我就介紹一下這個login頁面的寫法。

  我們首先用 JavaScript 建立一個 Cookie,然後檢查 Cookie 是否存在。由於我們使用 JavaScript 進行這項操作,如果使用者沒有開啟 JavaScript,但開啟了 Cookies 的話,我們仍然會得到 Cookies 沒開啟的結果。但這與我們的要求並不衝突,反正我們是要求兩者都開啟的。(如果你確實只想知道 Cookies 是否 enabled,而不關心 JavaScript,也是有辦法的,我們在另文中討論)要確定使用者是否開啟 JavaScript,我在 html 中建立了一個隱藏 from,然後在 onload 事件中調一個 JavaScript 函數,改變該隱藏 form 的值,如果值被改變了,那就說明 JavaScript 是開啟的,否則這個JavaScript 函數就不會被調用。(上面兩個功能我寫在一個函數中)

  首先,我們放一個隱藏 form 在 html 中,用<form>...</form>括起來。(當然,中間還可以有 username/password 的from)

  <FORM>
  ...
  <input type="hidden" name="cookieexists" value="false">
  </FORM>

  只要它的值是false,就說明瀏覽器不支援 JavaScript。注意其初始值是 false。我們的 JavaScript 函數將把這個值換

  為true。在 BODY 中這樣寫:

  <body >

  cc()的內容如下:

以下是引用片段:
<script language="JavaScript">
<!-
function cc()
{
/* check for a cookie */
if (document.cookie == "") 
{
/* if a cookie is not found - alert user -
change cookieexists field value to false */
alert("COOKIES need to be enabled!"); 
/* If the user has Cookies disabled an alert will let him know 
that cookies need to be enabled to log on.*/ 
document.Form1.cookieexists.value ="false" 
} else {
/* this sets the value to true and nothing else will happen,
the user will be able to log on*/
document.Form1.cookieexists.value ="true"
}
}
/* Set a cookie to be sure that one exists.
Note that this is outside the function*/
document.cookie = 'killme' + escape('nothing')
// -->
</script>


  這個程式能實現的功能是:

  1 當使用者 JavaScript 開啟,而 Cookies 關閉時彈出警告資訊

  2 當使用者 JavaScript 關閉,使用者無法直接得到檢查結果。(不要忘記,要彈出警告視窗也需要執行 alert 這個JavaScript 語句,這時即使檢查出來都無法提示),但這時使用者的 from 提交後,背景程式就會發現 cookieexists 這個域的值是 false,這就說明 JavaScript 關閉了。以後要做什麼就不用我說了吧?



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.