我想知道如何检查浏览器中是否启用了Javascript。我需要这样做以避免服务器端验证。
答案 0 :(得分:5)
您可以执行各种检查,例如向您从Javascript填写的表单添加隐藏字段。服务器可以检查该值是否设置,如果是,则假设javascript处于活动状态。
但是你永远不应该依赖客户端验证。始终执行服务器端验证。客户端验证只是提高可用性的额外验证。
答案 1 :(得分:4)
你不想要这个。
客户端验证只是直接通知您的用户任何错误填充的字段,但真正的验证应该在服务器端完成。客户端可以更改JavaScript并使其按照自己的意愿行事,因此不可靠。
为什么不总是检查服务器端?这更有利。
答案 2 :(得分:3)
您永远不想避免服务器端验证,只需执行两次。
答案 3 :(得分:1)
如果您只是想检测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%;
}