将移动浏览器检测,规则选择添加到规则集中

时间:2011-09-28 21:24:08

标签: krl

我想在规则集中添加功能,根据浏览器是否移动来触发不同的规则。 (对于标准浏览器会触发一条规则,为移动浏览器触发不同规则)我知道浏览器检测可以通过多种方式完成,但我的第一个倾向是使用javascript。

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

1 个答案:

答案 0 :(得分: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可能正确也可能不正确。以下是Mac上Chrome浏览器的外观(您可以在任何浏览器中使用this URL进行测试):

Chrome, Mac

以下是iPad在Safari中的样子:

Safari, iPad

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