如何检测是否禁用了JavaScript?

梦想的初衷 提交于 2019-12-29 14:25:10

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

今天早上有一篇帖子问有多少人禁用JavaScript。 然后我开始想知道可以使用什么技术来确定用户是否禁用了它。

有谁知道一些简单/简单的方法来检测JavaScript是否被禁用? 我的目的是警告您,如果没有启用JS的浏览器,站点将无法正常运行。

最终,我想将它们重定向到可以在没有JS的情况下运行的内容,但是我需要将此检测作为占位符才能启动。


#1楼

在主体上使用.no-js类,并基于.no-js父类创建非javascript样式。 如果禁用了javascript,则将获得所有非javascript样式;如果有JS支持,则将替换.no-js类,从而照常提供所有样式。

 document.body.className = document.body.className.replace("no-js","js");

通过modernizr在HTML5样板http://html5boilerplate.com/中使用的技巧,但您可以使用一行JavaScript来替换类

Noscript标记还可以,但是为什么可以使用CSS完成HTML中的多余内容


#2楼

您可以使用简单的JS代码段来设置隐藏字段的值。 回发后,您知道是否启用了JS。

或者,您可以尝试打开一个快速关闭的弹出窗口(但是可能会看到)。

此外,您还有NOSCRIPT标记,可用于为禁用JS的浏览器显示文本。


#3楼

noscript块在禁用JavaScript时执行,通常用于显示您在JavaScript中生成的替代内容,例如

<script type="javascript">
    ... construction of ajaxy-link,  setting of "js-enabled" cookie flag, etc..
</script>
<noscript>
    <a href="next_page.php?nojs=1">Next Page</a>
</noscript>

没有js的用户将获得next_page链接-您可以在此处添加参数,以便您在下一页上知道他们是否通过JS /非JS链接来访问,或者尝试通过JS设置cookie,缺少它就意味着JS已禁用。 这两个例子都相当简单,易于操作,但是您明白了。

如果您要纯粹统计一下您的用户中有多少人禁用了javascript,可以执行以下操作:

<noscript>
    <img src="no_js.gif" alt="Javascript not enabled" />
</noscript>

然后检查您的访问日志以查看该图像被击中了多少次。 稍微粗略的解决方案,但可以为您的用户群提供一个百分比的好主意。

上面的方法(图像跟踪)在纯文本浏览器或根本不支持js的浏览器中效果不佳,因此,如果您的用户群主要转向该领域,这可能不是最佳方法。


#4楼

在什么地方检测到它? JavaScript? 那是不可能的。 如果只想将其用于记录目的,则可以使用某种跟踪方案,其中每个页面都有JavaScript,这些JavaScript会请求特殊资源(可能是很小的gif或类似资源)。 这样,您就可以区分唯一页面请求和跟踪文件请求之间的区别。


#5楼

您将要看一下noscript标记。

<script type="text/javascript">
...some javascript script to insert data...
</script>
<noscript>
   <p>Access the <a href="http://someplace.com/data">data.</a></p>
</noscript>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!