当前位置

Javascript 识别 Opera Mini

自从搜狐通行证上线后,搜狐所有的产品就无法支持 Opera Mini 的登录了。对于一个 Opera Mini 用户来说,这事就成为俺一个很大的心病,现在终于有时间来考察怎样来支持 Opera Mini

解决方法就是对于这种 js 支持比较落后的浏览器,更改 Ajax 认证方式为 HTTP POST。就 Opera Mini 而言,麻烦之处就是如何在 html/js 端把它识别出来。

mini 3.1 很有意思,window.navigator.userAgent 得到是 "Mozilla/4.0 (compatible; MSIE 6.0; ; Linux i686) Opera 7.50[en]"(去 http://www.operamini.com/demo/ 访问 passport.sohu.com/testindex.jsp),估计在服务器端的引擎是在 Linux 版的 Opera 7.5 基础上进行的,因此搞了这个乌龙。

后来又查询了一下 window.screen.width,发现它的宽度是 800,于是再增加这个判断条件来做 Opera Mini 的识别...预计支持 OperaMini 登录的搜狐通行证将于下周正式上线。

btw: Opera Mini 4 看起来这方面的支持完善了很多,userAgent 显示为 "Opera 9.50 (J2ME/MIDP; Opera Mini/4.x.xxxx/x; U; en)"。可以去 http://www.operamini.com/beta/simulator/ 体验一下小屏幕浏览的乐趣!

Update: 刚刚测试中发现 OperaMini 3.1 的高度是 5000,这个特色比较显著,可以利用在 js 端做识别。不过 OperaMini 4 的高度和宽度就和设备上的像素一致了
如果要遍历 javascript 的 host object,这里有个在线工具挺不错

Topic: