在每个页面上显示“升级您的浏览器”模式

时间:2013-02-11 07:15:58

标签: ruby-on-rails

如果他们从旧浏览器访问我网站上的任何页面,我想向用户展示自定义的“升级浏览器”模式对话框。

我知道如何检测浏览器但是 - 我无法弄清楚将代码放在何处以显示模式以及如何执行此操作。 ApplicationController before_filter可以渲染一个调用.modal('show')的js吗?还有其他方法吗?纯粹的js?

2 个答案:

答案 0 :(得分:2)

使用Javascript可以最恰当地解决这个问题。

  • 使用Modernizr
  • 检测您需要的浏览器功能
  • 如果Modernizr测试失败,则显示某种类型的弹出窗口

将modernizr.js添加到您的项目中,并将此javascript插入您的application.js:

Modernizr.load([
    {
        test: Modernizr.cssgradients,
        nope: function () { alert('Sorry, your browser does not support a required feature of this site. Please upgrade or use another browser.'); }
    }
]);

改变" Modernizr.cssgradients"你需要什么功能。

如果您不希望将此作为“警告”#34;,则可以使用noty.js之类的内容,将以上alert方法替换为:

noty({text: 'Sorry, your browser does not support a required feature of this site. Please upgrade or use another browser.'});

答案 1 :(得分:0)

将div / modal放置在布局文件中(app / views / layouts / application.html.erb,最有可能),并根据您的需要将其包装在rails条件中,如下所示:

<body>
    ....
    <% if (old_browsers.include?(current_browser) %>
        <div class="old-browser-modal">
            ....
        </div>
    <% end %>
</body>