如果用户从旧浏览器访问我网站上的任何页面,我想向他们显示自定义的“升级浏览器”模式对话框。
我知道如何检测浏览器,但是 - 我无法弄清楚将代码放在哪里以显示模式以及如何做到这一点。ApplicationController before_filter 可以渲染一个调用.modal('show')的js吗?还有什么办法吗?纯js?
如果用户从旧浏览器访问我网站上的任何页面,我想向他们显示自定义的“升级浏览器”模式对话框。
我知道如何检测浏览器,但是 - 我无法弄清楚将代码放在哪里以显示模式以及如何做到这一点。ApplicationController before_filter 可以渲染一个调用.modal('show')的js吗?还有什么办法吗?纯js?
这将最适合使用 Javascript 解决。
将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.'});
将 div/modal 放在布局文件中(最有可能是 app/views/layouts/application.html.erb),然后根据您的需要将其包装在有条件的 rails 中,如下所示:
<body>
....
<% if (old_browsers.include?(current_browser) %>
<div class="old-browser-modal">
....
</div>
<% end %>
</body>