在Google协作平台上检测Blackberry浏览器

Jua*_*tti 1 javascript blackberry google-sites

我正在使用嵌入在Google网站上的Google日历.

BlackBerry用户报告错误,因此我想将其重定向到另一个页面.

我试图添加此代码

<script type="text/javascript">   
   var ua = navigator.userAgent;
   var url = "http://optimizedmobile.yoursite.com/";
   if (ua.indexOf("BlackBerry") >= 0)
   {
      if (ua.indexOf("WebKit") >= 0)
      {
         window.location = url;
      }
   }
</script>
Run Code Online (Sandbox Code Playgroud)

使用此处提供说明,但它不起作用.我在我创建的html文件中测试了代码并且它有效.

那么,在页面上包含代码的任何其他想法?您认为Google网站不支持该代码吗?

重定向BB用户的任何其他想法?

Nat*_*ate 6

我不确切地知道您要检测哪些 BlackBerry设备.不幸的是,他们中的许多人的答案是不同的.

从此BlackBerry.com参考文档,一些UserAgent示例:

BlackBerry 10中的用户代理

Mozilla/5.0 (BB10; <Device Type>) AppleWebKit/537.10+ (KHTML, like Gecko) Version/<BB Version #> Mobile Safari/537.10+
Run Code Online (Sandbox Code Playgroud)

BlackBerry Tablet OS中的用户代理

Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.0; en-US) AppleWebKit/535.8+ (KHTML, like Gecko) Version/7.2.0.0 Safari/535.8+
Run Code Online (Sandbox Code Playgroud)

BlackBerry 6和BlackBerry 7中的用户代理

Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/X.X.X.X Mobile Safari/534.11+
Run Code Online (Sandbox Code Playgroud)

BlackBerry Device Software 4.2到5.0中的用户代理

BlackBerry9000/5.0.0.93 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179
Run Code Online (Sandbox Code Playgroud)

所以,在我看来,确切的字符串BlackBerry只会显示在Java OS版本4.2 - 7.1的设备的用户代理中.而且,其中只有OS 6.0 - 7.1的用户才会使用WebKit浏览器.

因此,我认为您只需要在if语句中添加更多案例,以检测所有BlackBerry设备.