今天早上有一篇帖子问有多少人禁用JavaScript。然后我开始想知道可以使用什么技术来确定用户是否禁用了它。
有谁知道一些简短/简单的方法来检测是否禁用了JavaScript?我的目的是警告您,如果没有启用JS的浏览器,站点将无法正常运行。
最终,我想将它们重定向到可以在没有JS的情况下运行的内容,但是我需要将此检测作为占位符才能启动。
我假设你正在尝试确定是否提供JavaScript增强的内容。最好的实现会明显降级,因此该站点仍可以在没有JavaScript的情况下运行。我还假设你的意思是服务器端检测,而不是<noscript>出于无法解释的原因使用元素。
<noscript>
没有执行服务器端JavaScript检测的好方法。作为替代方案,可以使用JavaScript设置cookie,然后在后续的页面浏览中使用服务器端脚本测试该cookie。但是,这将不适合确定要传递的内容,因为它将无法区分没有cookie的访问者与新访问者或阻止cookie的访问者。
我想在这里添加我的.02。它不是100%防弹的,但我认为它足够好。
对我来说,问题是出现“没有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>
… 你网站中的所有内容都被一个“ pagecontainer”类的div包裹。然后,noscript标记内的CSS将隐藏所有页面内容,而是显示你要显示的任何“ no JS”消息。这实际上就是Gmail的功能……如果对Google足够好,那么对我的小网站也足够了。