首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模板工具包浏览器检测

模板工具包浏览器检测
EN

Stack Overflow用户
提问于 2013-01-23 06:23:56
回答 2查看 353关注 0票数 1

有没有办法通过模板工具包来检测你使用的是什么浏览器?例如,我可以使用jQuery实现我想要做的事情,但如果可能的话,我认为知道如何在模板工具包中实现它会很有用?

Jquery

代码语言:javascript
运行
复制
    <script>
    jQuery(window).load(function(){
        if ( (jQuery.browser.msie && jQuery.browser.version < 9.0) )
        {
            jQuery('body').addClass('old-ie');
        }
    });
    </script>

在模板工具包中,我想做一些类似下面的事情,但是在文档中看不到它?

代码语言:javascript
运行
复制
    <body 
    [% IF browser.msie && browser.version < 9.0 %]
    class="old-ie"
    [% ELSE %]
    [% END %]
    >
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 07:04:42

我不知道有没有TT插件可以做到这一点,但是在后端应用程序中添加一两行代码以使信息可供模板使用是很容易的。例如,如果你的应用是基于Catalyst的,你可以在你的主程序中添加类似这样的东西:

代码语言:javascript
运行
复制
__PACKAGE__->apply_request_class_roles(qw/
    Catalyst::TraitFor::Request::BrowserDetect
/);

..。在你的'auto‘处理程序中,引入一行代码,比如(untested):

代码语言:javascript
运行
复制
$c->stash(browser => $c->req->browser);

..。或者直接使用这是你的模板:

代码语言:javascript
运行
复制
[%- 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等也有类似的插件/方法。

票数 4
EN

Stack Overflow用户

发布于 2013-01-23 06:46:27

您可以通过HTTP请求标头来完成此操作。您没有提到调用TT的是什么,但是如果您使用的是Catalyst,那么您可以使用Catalyst::TraitFor::Request::BrowserDetect,然后将一个变量传递给TT,以说明哪种浏览器正在请求该页面。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14469171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档