有没有办法通过模板工具包来检测你使用的是什么浏览器?例如,我可以使用jQuery实现我想要做的事情,但如果可能的话,我认为知道如何在模板工具包中实现它会很有用?
Jquery
<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 %]
>
发布于 2013-01-23 07:04:42
我不知道有没有TT插件可以做到这一点,但是在后端应用程序中添加一两行代码以使信息可供模板使用是很容易的。例如,如果你的应用是基于Catalyst的,你可以在你的主程序中添加类似这样的东西:
__PACKAGE__->apply_request_class_roles(qw/
Catalyst::TraitFor::Request::BrowserDetect
/);
..。在你的'auto‘处理程序中,引入一行代码,比如(untested):
$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::BrowserDetect和HTTP::BrowserDetect。我相信对于Dancer,Mojolicious等也有类似的插件/方法。
发布于 2013-01-23 06:46:27
您可以通过HTTP请求标头来完成此操作。您没有提到调用TT的是什么,但是如果您使用的是Catalyst,那么您可以使用Catalyst::TraitFor::Request::BrowserDetect,然后将一个变量传递给TT,以说明哪种浏览器正在请求该页面。
https://stackoverflow.com/questions/14469171
复制相似问题