2011-09-28 79 views
2

我想添加功能的规则集,根据浏览器是否移动或不移动引发一个独特的规则。 (一个规则触发一个标准浏览器,另一个规则触发一个移动浏览器)我知道浏览器检测可以通过多种方式完成,但我的第一个倾向是使用javascript。将移动浏览器检测,规则选择添加到规则集

有关如何从这开始的任何想法?

回答

1

可以使用useragent object,就像这样:

rule detect_agent { 
    select when pageview ".*" 
    pre { 
     browser_name = useragent:browser_name(); 
     browser_version = useragent:browser_version(); 
     os = useragent:os(); 
     os_type = useragent:os_type(); 
     os_version = useragent:os_version(); 
     full_useragent = useragent:string(); 
     message = << 
      <p><strong>Information about your browser:</strong></br /> 
      <em>Browser name:</em> #{browser_name}</br /> 
      <em>Browser version:</em> #{browser_version}</br /> 
      <em>Operating system:</em> #{os}</br /> 
      <em>OS type:</em> #{os_type}</br /> 
      <em>OS version:</em> #{os_version}</br /></p> 
      <p>#{full_useragent}</p> 
     >>; 
    } 
    append("body", message); 
} 

你可能要做一些自己的分析,不过,由于browser_nameos可能会或可能不正确。下面是它看起来像在Chrome浏览器的Mac(你可以在任何浏览器中使用this URL测试):

Chrome, Mac

这里是什么样子的Safari在iPad上:

Safari, iPad

对您关心的浏览器的UserAgent字符串进行一些调查。然后,您可以使用useragent:string()函数与match()一起确定如何处理它。 (如果你想要一个如何做到这一点的例子,请告诉我。)