什么'这是重定向不受支持的浏览器的最简单方法

What's the easiest way to redirect unsupported browsers?

本文关键字:支持 浏览器 方法 最简单 重定向 什么      更新时间:2023-10-20

我正在编写一个支持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之外,它在所有浏览器中都没有经过测试,你必须自己测试它,并根据你的需求进行调整,但它应该返回一个带有浏览器名称和浏览器版本的数组,你可以检查它是否符合你的要求。

再说一遍,特征检测通常是可行的,浏览器嗅探则不然。

试试Modernizer:

它是一个非常简单的js插件,允许您检测、重定向和支持来自不太流行的浏览器的用户。上面的链接应该会给你所有你需要知道的。

来自他们的网站:

Modernizr使您可以轻松编写条件JavaScript和CSS来处理每种情况,无论浏览器是否支持某个功能不它非常适合轻松进行渐进式增强。