1

テンプレート ツールキットを使用して、使用しているブラウザを検出する方法はありますか? たとえば、jQueryを使用してやりたいことを達成できますが、可能であればテンプレートツールキットでそれを行う方法を知っておくと便利だと思いましたか?

Jクエリ

    <script>
    jQuery(window).load(function(){
        if ( (jQuery.browser.msie && jQuery.browser.version < 9.0) )
        {
            jQuery('body').addClass('old-ie');
        }
    });
    </script>

テンプレートツールキットで以下のようなことをしたいのですが、ドキュメントのどこにも見当たりませんか?

    <body 
    [% IF browser.msie && browser.version < 9.0 %]
    class="old-ie"
    [% ELSE %]
    [% END %]
    >
4

2 に答える 2

4

これは、HTTP 要求ヘッダーを介して行うことができます。TT を呼び出しているものについては言及していませんが、Catalyst を使用している場合は、Catalyst::TraitFor::Request::BrowserDetectを使用してから、変数を TT に渡して、どの種類のブラウザがページを要求しているかを示します。

于 2013-01-22T22:46:26.667 に答える
4

このための TT プラグインについては知りませんが、バックエンド アプリケーションに 1 ~ 2 行追加して、テンプレートで情報を利用できるようにするのは簡単です。たとえば、アプリが Catalyst ベースの場合、次のようなものをメイン プログラムに追加します。

__PACKAGE__->apply_request_class_roles(qw/
    Catalyst::TraitFor::Request::BrowserDetect
/);

...そして、「自動」ハンドラーで、(未テスト) のような行を導入します。

$c->stash(browser => $c->req->browser);

... または、これをテンプレートとして使用します。

[%- SET browser = c.req.browser;
    SET old_ie = 'class="old-ie"'
        IF browser.windows && browser.ie && browser.public_major < 9.0;
-%]

old_ieテンプレートの必要な場所に含めます。

詳細とオプションについては、 Catalyst::TraitFor::Request::BrowserDetectHTTP::BrowserDetectを参照してください。Dancer、Mojolicious などにも同様のプラグイン/メソッドがあると確信しています。

于 2013-01-22T23:04:42.150 に答える