我正在编写一个支持 IE9、Firefox 23、Chrome 29 和 safari 5.1 的网站。
我不想优雅地贬值,只是想将所有其他浏览器重定向到一个单独的网页,上面写着“对不起,伙计。是时候成为一个男人并获得一个真正的浏览器了。”。
用最少的代码完成此任务的最简单方法是什么?
最佳答案
功能检测是正确的方法,而不是浏览器嗅探,而是为了向您提供您似乎正在寻找的答案,我做了这个:
var browser = (function(){
var ua = navigator.userAgent,
M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [],
tem;
if(/trident/i.test(M[1])){
tem = /\brv[ :]+(\d+(\.\d+)?)/g.exec(ua) || [];
return ['ie', (tem[1] || '')];
}
M = M[2] ? [M[1].toLowerCase(), M[2]]:[navigator.appName.toLowerCase(), navigator.appVersion, '-?'];
if((tem = ua.match(/version\/([\.\d]+)/i))!= null) M[2] = tem[1];
return M;
})();
var supported = {
'ie' : 9,
'chrome' : 29,
'safari' : 5.1
}
if (supported[browser[0]] <= (browser[0]=='safari' ? parseFloat(browser[1]) : parseInt(browser[1],10))) {
alert('Your browser is OK !');
}else{
window.location.href = 'http://browsehappy.com/';
}
它没有在所有浏览器中进行测试,但最新的 chrome 浏览器除外,您必须自己测试它,并根据您的需要进行调整,但它应该返回一个包含浏览器名称和浏览器版本的数组,您可以检查它是否与您的匹配要求。
再说一遍,功能检测通常是可行的方法,而浏览器嗅探则不然。
关于javascript - 重定向不受支持的浏览器的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230234/