欣赏Gmail交互设计,呵呵,好像说过一次了。不过Gmail带给我的WebMail的用户体验实在是太棒了!
言归正传,看一下Gmail对于一些主流浏览器的判断代码:(只是部分,也只是个Shell)
var agt = navigator.userAgent.toLowerCase();
var is_op = (agt.indexOf("opera") != -1);
var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op;
var is_ie5 = (agt.indexOf("msie 5") != -1) && document.all && !is_op;
var is_mac = (agt.indexOf("mac") != -1);
var is_gk = (agt.indexOf("gecko") != -1);
var is_sf = (agt.indexOf("safari") != -1);
function bs() {
if (is_ie && !is_op && !is_mac) {
if (agt.indexOf("palmsource") != -1 ||
agt.indexOf("regking") != -1 ||
agt.indexOf("windows ce") != -1 ||
agt.indexOf("j2me") != -1 ||
agt.indexOf("avantgo") != -1 ||
agt.indexOf(" stb") != -1) {
return false;
}
var v = gff(agt, "msie ");
if (v != null) {
return (v >= 5.5);
}
}
if (is_gk && !is_sf) {
var v = gff(agt, "rv:");
if (v != null) {
return (v >= 1.4);
} else {
v = gff(agt, "galeon/");
if (v != null) {
return (v >= 1.3);
}
}
}
if (is_sf) {
var v = gff(agt, "applewebkit/");
if (v != null) {
return (v >= 124);
}
}
if (is_op) {
// Could have "Opera 8.0" or "Opera/8.0".
var v = gff(agt, "opera ");
if (v == null) {
v = gff(agt, "opera/");
}
if (v != null) {
return (v >= 8.0);
}
}
return false;
}
function gff(str, pfx) {
var i = str.indexOf(pfx);
if (i != -1) {
var v = parseFloat(str.substring(i + pfx.length));
if (!isNaN(v)) {
return v;
}
}
return null;
}
var is_browser_supported = bs();
var tz_path = ';path=/';
if (top.location.href.toLowerCase().indexOf('google.com') > 0) {
tz_path += ';domain=.google.com';
}
document.cookie = "TZ=" + (new Date()).getTimezoneOffset() + tz_path;
呵呵,没想到我最喜欢用的Opera竟然放在前面。不过,说实话,Opera做的也很棒,若去掉Xml和多媒体支持不说的话,Opera绝对是没得说!我用过IE,Maxthon,GreenBrowser这些基于IE内核的,也用过Firefox,
最后我的选择是Opera+IE,:)。
浙公网安备 33010602011771号