2009-05-26 112 views
7

我正在使用以下内容来定位iphones,手持设备使用特定的移动样式表,但黑莓浏览器仅拾取常规屏幕样式表。如何定位黑莓浏览器?

<link media="handheld, only screen and (max-device-width: 320px)" href="mobile.css" type="text/css" rel="stylesheet" /> 
<link media="only screen and (max-device-width: 480px)" href="mobile.css" type="text/css" rel="stylesheet" /> 

我测试过该网站的所有其他移动设备都选取了正确的样式表。

有没有人知道一种方法来针对黑莓浏览器做同样的事情?

谢谢!

回答

3

我结束了使用Javascript来检测用户代理。

然后为手持设备和屏幕(如果它是移动设备)(因为BlackBerry和iPhone认为它们是屏幕)打印mobile.css并打印常规样式表(如果它不是移动设备)。

它不适用于任何没有Javascript的设备,但它们可能更适合看到网站的裸骨版本。

2

我没有一个确切的答案,并且从来没有尝试过这个,但你可以试试看看Mobile Device Browser File。这是针对使用移动应用程序的ASP.Net开发人员的,但如果不是的话,它可能仍然有用。它的开放源代码和MS-PL许可证。

如果您正在使用ASP.Net尝试检查出从斯科特Hanselman的这个播客上MDBF更多信息 - ASP.Net and the Mobile Web

3

的移动浏览器的状态是,我不会建议试图当下这样一个烂摊子在客户端检测版本。最可靠的方法是使用WURFL http://wurfl.sourceforge.net/之类的东西,并执行所有检查服务器端。

祝你好运得到任何东西在黑莓上很好地工作!哦,别忘了,运营商可能会在你的HTML连接到手机之前就搞砸了。

1

这将针对黑莓设备特别是与一个叫blackberry.css

var ua = navigator.userAgent; 
if (ua.match(/(BlackBerry|Blackberry|blackberry|BB|bb|RIM|rim|Playbook|PlayBook|playbook)/)!=null) { 
    document.write('<link rel="stylesheet" type="text/css" href="blackberry.css">'); 
    console.log ('Blackberry confirmed'); 
} 
样式表