我不想处理JavaScript关闭的用户,所以我想阻止他们使用我的应用程序。我想检测用户是否打开了javascript,因此我可以将它们重定向到一个页面,告诉他们他们需要使用javascript。我确定它在请求标题中。任何人有任何想法我可以做到这一点?如何检测客户端是否已从JavaScript打开/关闭Rails?
回答
noscript
标记是最简单的解决方案,虽然不完全符合您的要求。
<noscript>Get outta here.</noscript>
谢谢。你似乎只有一个人回答谁回答/询问Rails。 – DJTripleThreat 2010-09-08 19:20:36
你真的需要重定向吗?将消息放在<noscript>
元素中,并且只会将其显示为适用的元素。
你只需要HTML:
<noscript><meta http-equiv="refresh" content="0;url=http://example.com/use_js.html" /></noscript>
当然不会阻止服务器提供内容的这种,它只是将输出这个meta refresh
标记,这将被解析(并执行,将用户重定向)通过没有JavaScript或JavaScript禁用的客户端。
'noscript'不能位于文档的“头部”。 'meta'不能在文档的'body'中。它仍然适用于某些浏览器,但这种解决方案可能被某些人认为是无效的(比如所有知道的W3C验证器)。 – 2010-09-08 19:11:04
你不能。服务器不知道客户端启用了什么。如果客户端禁用Javascript,你甚至不能“检测”(因为你会用它来做什么?)。
当禁用Javascript时(例如,<noscript>
标记或使用Javascript隐藏仅用于JS的内容),您可以使用技巧来显示内容。
没有办法检测到服务器端的JavaScript。但是,您可以使用NOSCRIPT
标签显示一条消息,指出您的网站需要使用JavaScript。
例如,在浏览器中关闭JavaScript并加载Stack Overflow页面。整个页面顶部会有一个令人讨厌的红色信息,提醒您该网站在启用JavaScript的情况下效果最好。您可以检查堆栈溢出源代码和CSS样式以了解它们是如何实现的。
如果您确实想阻止非JavaScript用户使用您的网站,可以在noscript
标记中放入div
,并将div
扩大以涵盖页面上的所有内容。
您可以拥有一个带有JavaScript代码段的登录页面,该页面运行并重定向到真正的railsy登录页面,或者执行AJAXY调用以获取要显示用户的数据。这将积极地要求javascript被启用继续。
- 1. 检测客户端的浏览器是否已关闭Cookie
- 2. 检测COM端口是否已关闭
- 3. 如何检查是否UDP端口是打开还是关闭
- 4. C++ TCP检测客户端是否已断开连接数秒
- 5. 检查客户端上是否打开或关闭Dynamics CRM活动
- 6. 关闭ServerSocket - 如何正确检查客户端套接字是否关闭?
- 7. 如何处理客户端关闭Javascript?
- 8. 如何检查打开的窗口是否用javascript关闭?
- 9. 检测Excel文件是否已关闭
- 10. 如何在客户端关闭前保持套接字打开?
- 11. 如何检查zipfile是否已关闭
- 12. 检测相机是否已打开
- 13. 如何检测客户端何时打开套接字?
- 14. 检测客户端的正确方法已从TCP/IP断开
- 15. 如何测试HttpException是否是“客户端已断开连接”。错误?
- 16. 如何确定客户端的互联网连接是否已关闭?
- 17. 如何检查端口是否在客户端电脑上打开?
- 18. 如何检测JS是否已打包
- 19. 如何检测无模式CDialog是否已关闭?
- 20. Ruby:如何检测套接字的一侧是否已关闭
- 21. 如何检测设备浏览器是否已关闭?
- 22. 检测NumLock是否关闭并将其始终打开
- 23. 检测眼睛是否打开或关闭
- 24. 检测文件是否已在javascript/hta中打开
- 25. 检测文件是否已经在javascript中打开
- 26. 检测对象是否与客户端断开连接
- 27. Rails如何检查session_id cookie是否被客户端更改
- 28. 如何使用javascript从客户端打开Outlook任务窗口
- 29. 检测3gb开关是否以编程方式打开或关闭
- 30. 如何检测通知中心是否已打开
我确定,它不在请求标题中。 ;) – Nappy 2010-09-08 19:09:27
讽刺并不是很有帮助。不管怎么说,还是要谢谢你。 – DJTripleThreat 2010-09-08 19:21:34