2013-01-17 111 views
0

哪种方法更可靠地检测手机浏览器?检测手机浏览器没有用户代理嗅探

  • UA嗅探

  • jQuery的width()

据我了解UA嗅探并不十分可靠。

我需要根据查看页面的移动设备的宽度更改页面的HTML。我无法单独使用媒体查询。

+0

您是否正在改变某些元素的外观,因为屏幕很窄?如果是这样,请使用媒体查询。如果你改变元素行为的方式(例如,移动设备没有鼠标,所以他们不能悬停),那么你最好检测功能(例如它是否支持触摸事件?)并相应地进行调整。移动设备的分辨率越来越高:宽度不再是检测它们的准确方法。 – cimmanon

+0

我需要根据宽度更改html。我无法单独使用媒体查询。 – user1721135

+0

不幸的是没有一个选项。 – user1721135

回答

2

您可以使用mobile detect JS library来做到这一点。注意以下警告:

// WARNING: 
// These JavaScript-based device detection features may ONLY work 
// for the newest generation of smartphones, such as the iPhone, 
// Android and Palm WebOS devices. 
// These device detection features may NOT work for older smartphones 
// which had poor support for JavaScript, including 
// older BlackBerry, PalmOS, and Windows Mobile devices. 
// Additionally, because JavaScript support is extremely poor among 
// 'feature phones', these features may not work at all on such devices. 
// For better results, consider using a server-based version of this code, 
// such as Java, APS.NET, PHP, or Ruby. 
0

有两种选择:

1-用户代理嗅探。 2移动检测JS库

0

你刚刚回答了你自己的问题 - 你要么采用用户的浏览器或他们的设备宽度。

如果您想在宽度小于WIDTH_CONSTANT时执行某些操作,请使用mediaQueries或使用javascript检查尺寸。

如今用户代理嗅探,不建议在客户端,因为,而非嗅探用户代理,你需要寻找您感兴趣的功能。

所以你的情况我几乎确信地说,你应该寻找设备宽度。

P.S.如果你在服务器端进行处理,我认为useragent嗅探是唯一能够找出设备用户正在使用的方法。

+0

我想在某些浏览器宽度或设备宽度上运行js代码。基本上,如果媒体查询踢我想要js做些事情。 – user1721135