2011-07-28 109 views
-4

我想知道如何檢查Javascript是否在瀏覽器中啓用。我需要這樣做,以避免服務器端驗證。如何檢查Javascript是否在瀏覽器中啓用

+6

不要那樣做!切勿避免服務器端驗證!即使啓用了JS,每個人都可以以任何方式發出GET或POST請求。 JS驗證僅用於用戶體驗。 –

+3

12個問題,並沒有接受答案?這被社區所詬病。如果你要繼續提問,你應該接受一些答案。 – abelenky

回答

2

你永遠要避免服務器端驗證,只需做兩次。

4

您可以執行各種檢查,如添加一個隱藏字段,你從Javascript填寫表格。服務器可以檢查該值是否設置,如果是,則假定javascript處於活動狀態。

但你永遠不應該依賴於客戶端驗證。始終執行服務器端驗證。客戶端驗證只是提高可用性的額外功能。

3

你不想要這個。

客戶端驗證只是東西直接通知任何錯誤填充字段的用戶,但真正的驗證應做服務器端。客戶可以更改JavaScript並使其按照自己的意願進行,因此它不可靠。

爲什麼你不經常檢查服務器端?這是更有利的。

0

如果您只是想檢測Javascript是否啓用,因爲您的站點要求它有用,或者您對非Javascript用戶有不同的佈局,則可以使用<noscript>元素。在這裏你可以放任何你想讓用戶看看他們是否沒有啓用Javascript。這可以是簡單的消息,也可以是整個頁面佈局。

<body> 
    //normal layout here 

    <noscript> 
     //message or alternative layout here, Javascript users won't see this. 
    </noscript> 
</body> 

如果你想有一個全新的佈局,你需要像這樣的東西來覆蓋其他佈局:

演示(代碼):http://jsfiddle.net/ThinkingStiff/nK4Ka/
演示(頁面查看沒有JS,因爲需要的jsfiddle它):http://jsfiddle.net/ThinkingStiff/nK4Ka/show/

HTML:

<div>Hello, Javascript!</div> 

<noscript> 
    <div>Hello, No Javascript</div> 
</noscript> 

CSS:

noscript { 
    background-color: white; 
    height: 100%; 
    left: 0; 
    overflow: scroll; 
    position: fixed; 
    top: 0; 
    width: 100%; 
} 
相關問題