ユーザーが古いブラウザーから私の Web サイトのページにアクセスした場合に、カスタマイズされた「ブラウザーをアップグレードする」モーダル ダイアログをユーザーに表示したいと考えています。
ブラウザを検出する方法は知っていますが、モーダルを表示するコードをどこに配置し、どのように実行するかわかりません。ApplicationController before_filter は .modal('show') を呼び出す js をレンダリングできますか? その他の方法で?純粋なjs?
ユーザーが古いブラウザーから私の Web サイトのページにアクセスした場合に、カスタマイズされた「ブラウザーをアップグレードする」モーダル ダイアログをユーザーに表示したいと考えています。
ブラウザを検出する方法は知っていますが、モーダルを表示するコードをどこに配置し、どのように実行するかわかりません。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.jsalert
のようなものを使用して、上記のメソッドを次のように置き換えます。
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、ほとんどの場合)に配置し、次のように、ニーズに基づいて条件付きのレールでラップします。
<body>
....
<% if (old_browsers.include?(current_browser) %>
<div class="old-browser-modal">
....
</div>
<% end %>
</body>