检查Javascript是否已启用

Jak*_*ake 10 javascript php jquery zend-framework

有没有办法检查浏览器是启用还是支持Javascript?如果不支持,我想将用户重定向到用户友好的错误页面.

我正在使用jQuery和PHP Zend Framework.

Mik*_*uel 19

<noscript><meta http-equiv="refresh" content="1;url=error.html"></noscript>
Run Code Online (Sandbox Code Playgroud)

如果禁用脚本,这将重定向到错误页面.只需替换error.html错误页面的URL即可.

  • @marc,我认为你对HTML 4是正确的,但在HTML 5下已经改变了.http://www.w3.org/TR/html5/scripting-1.html#the-noscript-element说"在头元素中,......`noscript`元素必须只包含`link`,`style`和'meta`元素"所以``noscript`元素都允许在`head`中,而在`head`中可以包含`meta`元素. (5认同)
  • imho`noscript`只能放在正文中,但是`meta`只是在头部,所以包含它的文档不会被验证. (2认同)

Bra*_*tie 6

作为另一种选择,您可以(虽然它需要第二页访问)使用javascript来设置cookie.

如果cookie存在于服务器端(他们有javascript)正常呈现页面.在没有使用cookie的过程中,您可以使用Location重定向,也可以渲染相应的[精简]模板以适应他们缺乏javascript支持.

页面HTML

<script type="text/javascript">
  document.cookie = 'hasJS=true';
</script>
Run Code Online (Sandbox Code Playgroud)

页面PHP

if (isset($_COOKIE['hasJS'])){
  // normal page render
}else{
  header('Location: http://mysite.com/index-nojs.php');
}
Run Code Online (Sandbox Code Playgroud)