5

可能重复:
如何检测 JavaScript 是否被禁用?

在我的 php 应用程序中,我需要检查浏览器中是否打开了 javascript。我已经尝试过了<noscript><p>javascript is off<p></noscript>,它工作正常。但是如果 javascript 是这样开发的,我需要重定向到一个页面

<noscript>
<?php header('Location: index.php');?>
</noscript>

但是 i/ts 总是重定向到 index.php,有任何方法可以做到这一点。

4

6 回答 6

11

您的解决方案显然无法正常工作,因为 php 在页面提供给客户端之前执行

你可以改为做类似的事情

<noscript>
  <meta http-equiv="refresh" content="0;URL='http://example.com/'">
</noscript>

在文档的开头

于 2012-09-28T11:38:23.817 回答
3
<noscript><meta http-equiv="refresh" content="1;url=error.html"></noscript>

如果 JS 被禁用,请尝试此重定向 Php 脚本独立于 js 运行

于 2012-09-28T11:41:17.840 回答
2

noscript存在已知问题

而是这样做:

<html>

<head>

<script>
window.location.href="javascriptEnabled.html";
/*Since javascript is enabled redirect to javascript based page*/
</script>

</head>

<body>
Showing Static Website since javascript is not enabled..
</body>

</html>
于 2012-09-28T11:45:13.690 回答
1

没有好的方法可以做到这一点,因为没有客户端交互,您无法从客户端获取信息。

你可以做这样的事情......

  1. 设置元重定向以在 5 秒后触发
  2. 使用 javascript 覆盖元重定向

因此,如果启用了 javascript,您将进入 javascript 页面,否则将进入非 javascript 页面

于 2012-09-28T11:40:19.120 回答
0

它确实重定向到 index.php,因为它<?php header('Location: index.php');?>是由服务器处理的,而<noscript>是由客户端处理的。

正确的方法是在客户端使用 javascript 设置 cookie,然后在服务器上使用 php 检查 cookie 的存在,如果 cookie 确实存在,则 javascript 开启,否则关闭。

于 2012-09-28T11:41:46.820 回答
0

您可以在这里使用不同的方法

  • 使用无 javascript 版本作为默认版本
  • 使用 javascript 重定向到增强版本

请记住,最好不要有单独的网站版本。您可以使用http://modernizr.com/https://github.com/filamentgroup/enhance等库进行渐进式增强

于 2012-09-28T12:00:10.320 回答