检查Javascript是否可用并重定向到另一个页面

时间:2010-09-01 09:07:55

标签: javascript ruby-on-rails

在我的rails网站上,我需要在所有网页上使用javascript。如果未启用,则每个页面都将失败。

我想要做的是,如果没有启用javascript,我想将它们重定向到另一个静态页面 - 要求用户首先启用javascript。我希望所有页面都能实现这一点。有可能吗?

我已经尝试将代码放在我的应用程序控制器中并检查但是有些东西没有到位。在rails中是否有任何标准的解决方案..可能是帮手或某事......?

4 个答案:

答案 0 :(得分:7)

只需使用<noscript>元素即可显示链接:<noscript>Your browser does not support scripting. Please use the <a href="#">lite version</a></noscript>。很可能你没有脚本的用户很少,所以不值得花太多时间在这些功能上。

答案 1 :(得分:3)

作为NoScript用户,我发现这些重定向非常烦人。如果我决定,是的,我想允许这个网站使用JavaScript,我只想在我的浏览器中单击“允许JavaScript”,这将重新加载当前页面。通过重定向,我需要另一步。

我所做的是在页面顶部放置一些这样的代码:

<div class='warning' id='js-warning'>
  Sorry, this page really requires JavaScript to be useful.
  … maybe a little more text on why …
</div>
<script language='JavaScript'>$('js-warning').hide()</script>

答案 2 :(得分:1)

我成功使用的一种技术是访问第一个页面 - 通常是登录表单 - 在页面加载时使用JavaScript编写会话cookie。然后让表单提交的控制器检查该cookie是否存在。如果它不存在,那么您就知道JavaScript不可用,您可以采取适当的措施。

答案 3 :(得分:-1)

根据您的喜好更改网址:'NOSCRIPT.HTML'。

<noscript>
    <meta http-equiv="refresh" content="0;URL=NOSCRIPT.HTML" />
</noscript>

注意:这不是有效的HTML,但对于此特定功能请求,这是唯一的awnser。我可以告诉人们如何正确地做到这一点,但是当客户呼吸困难并且需要务实的低成本解决方案时,有时候不适合;但

也就是说,渐进式增强是正确的做法,并且显示一条消息以启用javascript绝对是一种更清晰的方式来通知访问者..良好的启用JavaScript。