0

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

我知道如何检测浏览器,但是 - 我无法弄清楚将代码放在哪里以显示模式以及如何做到这一点。ApplicationController before_filter 可以渲染一个调用.modal('show')的js吗?还有什么办法吗?纯js?

4

2 回答 2

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”更改为您需要的任何功能。

如果你不想把它作为一个简单的“警报”,你可以使用类似noty.js的东西,将上面的方法替换为alert

noty({text: 'Sorry, your browser does not support a required feature of this site. Please upgrade or use another browser.'});
于 2013-02-11T07:45:29.693 回答
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>
于 2013-02-11T07:32:47.087 回答