为了账号安全,请及时绑定邮箱和手机立即绑定

如何检测JavaScript是否被禁用?

如何检测JavaScript是否被禁用?

交互式爱情 2019-06-03 13:24:31
如何检测JavaScript是否被禁用?今天早上有一篇文章询问有多少人禁用了JavaScript。然后,我开始想知道可以使用什么技术来确定用户是否禁用了它。有没有人知道一些简短的/简单的方法来检测JavaScript是否被禁用?我的意图是警告,如果浏览器没有启用JS,站点将无法正常运行。最后,我希望将它们重定向到能够在没有JS的情况下工作的内容,但我需要将此检测作为占位符开始。
查看完整描述

4 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

我假设您正在决定是否提供JavaScript增强的内容。最好的实现会彻底降级,这样站点仍然不需要JavaScript就能运行。我还假设您指的是服务器端检测,而不是使用<noscript>因为一个无法解释的原因。

没有一种很好的方法来执行服务器端JavaScript检测。作为另一种选择,可以使用JavaScript设置cookie,然后在随后的页面视图上使用服务器端脚本对该cookie进行测试。然而,这不适合决定交付哪些内容,因为它将无法区分没有cookie的访问者与新访问者或阻塞cookie的访问者。


查看完整回答
反对 回复 2019-06-03
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

我想在这里加上我的.02。它不是100%防弹的,但我认为它足够好。

对我来说,问题在于,如果没有Javascript,您需要确保您的站点在没有Javascript的情况下正常工作,这是一个更好的例子:“如果没有Javascript,这个站点就不能很好地工作。”一旦你开始沿着这条路走下去,你就会开始意识到,当JS关闭时,这个站点应该是防弹的,这是一大部分额外的工作。

所以,你真正想要的是“重定向”到一个页面上,上面写着“打开JS,傻瓜”。但是,当然,您不能可靠地进行元重定向。所以,这里有个建议:

<noscript>
    <style type="text/css">
        .pagecontainer {display:none;}
    </style>
    <div class="noscriptmsg">
    You don't have javascript enabled.  Good luck with that.    </div></noscript>

.在哪里您的站点中的内容被一个div类“页面保持器”所包装。然后noscript标记中的CSS将隐藏所有的页面内容,而是显示任何您想要显示的“no JS”消息。这就是Gmail看起来所做的.如果它对Google来说足够好的话,它就足够适合我的小站点了。


查看完整回答
反对 回复 2019-06-03
?
倚天杖

TA贡献1828条经验 获得超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/non-JS链接来的,还是试图通过JS设置cookie,没有JS意味着JS已被禁用。这两个示例都相当琐碎,易于操作,但您了解了这一点。

如果您想了解有多少用户禁用了javascript,那么您可以这样做:

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

然后检查您的访问日志,看看这个图像被击中了多少次。一个稍微粗糙的解决方案,但它会给你一个很好的想法,百分比为您的用户基础。

上面的方法(图像跟踪)对于只支持文本的浏览器或那些根本不支持js的浏览器都不能很好地工作,所以如果你的用户基础主要转向这个领域,这可能不是最好的方法。




查看完整回答
反对 回复 2019-06-03
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

这是对我有用的:如果javascript被禁用,它会重定向访问者。

<noscript><meta http-equiv="refresh" content="0; url=whatyouwant.html" /></noscript>


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 1360 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信