0

ユーザーが古いブラウザーから私の Web サイトのページにアクセスした場合に、カスタマイズされた「ブラウザーをアップグレードする」モーダル ダイアログをユーザーに表示したいと考えています。

ブラウザを検出する方法は知っていますが、モーダルを表示するコードをどこに配置し、どのように実行するかわかりません。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.jsalertのようなものを使用して、上記のメソッドを次のように置き換えます。

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、ほとんどの場合)に配置し、次のように、ニーズに基づいて条件付きのレールでラップします。

<body>
    ....
    <% if (old_browsers.include?(current_browser) %>
        <div class="old-browser-modal">
            ....
        </div>
    <% end %>
</body>
于 2013-02-11T07:32:47.087 に答える