我不想处理关闭javascript的用户,所以我想阻止他们使用我的应用程序。我想检测用户是否启用了javascript,因此我可以将它们重定向到一个告诉他们需要使用javascript的页面。我确定它在请求标题中。任何人都有任何想法我怎么能这样做?
答案 0 :(得分:6)
noscript
标记是最简单的解决方案,但并不完全符合您的要求。
<noscript>Get outta here.</noscript>
答案 1 :(得分:3)
你真的需要重定向吗?将邮件放在<noscript>
元素中,它只会显示给它适用的那些。
答案 2 :(得分:3)
你做不到。服务器不知道客户端启用了什么。如果从客户端禁用Javascript,你甚至无法“检测”(因为你会用什么来做?)。
您可以使用技巧在禁用Javascript时显示内容(例如,<noscript>
标记,或使用Javascript隐藏仅适用于JS的内容。
答案 3 :(得分:3)
无法在服务器端检测JavaScript。但是,您可以使用NOSCRIPT
标记来显示指示您的网站需要JavaScript的消息。
例如,在浏览器中关闭JavaScript并加载Stack Overflow页面。页面顶部会显示一条令人讨厌的红色消息,警告您该网站在启用JavaScript时效果最佳。您可以检查Stack Overflow源代码和CSS样式,以了解它们是如何实现它的。
如果您确实希望阻止非JavaScript用户使用您的网站,您可以将邮件放在div
标记内的noscript
内,然后展开div
以覆盖所有内容页面。
答案 4 :(得分:1)
你只需要html:
<noscript><meta http-equiv="refresh" content="0;url=http://example.com/use_js.html" /></noscript>
这当然不会阻止服务器提供内容,它只会输出此meta refresh
标记,该标记将被没有禁用javascript或javascript的客户端解析(并通过重定向用户执行)。
答案 5 :(得分:1)
您可以拥有一个登录页面,其中包含一段javascript,可以运行并重定向到真正的railsy登录页面,或者执行AJAXY调用以获取您想要向用户显示的数据。这肯定需要启用javascript才能继续。