检测禁用JavaScript的浏览器并为其分离网站



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

我很好奇,如果用户禁用了JavaScript,其他人会认为什么是最可行的捕获方式。以下是我正在考虑使用的两种方法;如果有人有更好的想法或任何想法或事情,我在把它们放在一起时应该注意,请告诉我。

第一种方法

  1. 使用JavaScript函数将变量传递给PHP
  2. 根据变量PHP,编写JavaScript或非JavaScript版本

第二种方法

  1. 使用JavaScript函数将变量传递给PHP
  2. 这取决于使用头的可变PHP重定向到支持JavaScript或不支持JavaScript的站点

我猜第一个最好看,因为用户不会被重定向出页面;然而,我很好奇有没有一种更容易的方法来检测JavaScript是否被禁用或启用?我可以用PHP函数来代替JavaScript吗。使用上面的方法只是假设如果他们禁用了JavaScript,那么变量就不会被传递,PHP将输出非JavaScript版本的网站。

有什么收获吗?

你不需要PHP来做这件事,它都是HTML。

让javascript页面成为您的主站点。在它的头部,您可以有一个noscript标记,它内部对非javascript页面进行元刷新(或更好(。

为什么不直接使用noscript标记向用户显示消息?http://www.w3schools.com/tags/tag_noscript.asp

除非您有更复杂的理由来判断javascript是否处于活动状态。一般来说,你只需在noscript标记中包装一条大消息,指示需要javascript,没有它就无法工作。

无需往返。应该能够在第一次请求时判断浏览器是否支持js。在get_browser的注释中有一个有趣的讨论(以及片段列表((这似乎有些过头了,并且有一些配置要求(。再次阅读API文档,并仔细阅读注释。

http://php.net/manual/en/function.get-browser.php

使用<noscript>标记并在该标记中进行META重定向,这样没有JavaScript的用户就可以使用非JS版本。

所以你的代码看起来是这样的:

<noscript>
<meta http-equiv="refresh" content="0; url=http://foo.com/nojs">
</noscript>

或者,你可以在你的脚本标签中做这样的事情:

location.href='http://foo.com/js';

这样,您的主站点是非js版本,如果支持JavaScript,它将使用location.href 重定向到js版本

最新更新