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

时间:2013-11-26 23:34:40

标签: javascript html css3 cross-browser

我正在编写一个支持IE9,Firefox 23,Chrome 29和Safari 5.1的网站。

我只是想将所有其他浏览器重定向到一个单独的网页,而不是优雅的折旧,该网页上写着“抱歉伙计。时间成为一个男人并获得真正的浏览器。”。

使用最少量的代码执行此操作的最简单方法是什么?

2 个答案:

答案 0 :(得分:4)

功能检测是可行的方式,而不是浏览器嗅探,但为了向您提供您似乎正在寻找的答案,我做了这个:

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,你必须自己测试它,并根据你的需要调整它,但它应该返回一个带有browsername和browserversion的数组,你可以查看它是否与你的匹配要求。

同样,功能检测通常是要走的路,浏览器嗅探不是。

答案 1 :(得分:0)

尝试Modernizer

它是一个非常简单的js插件,允许您检测,重定向和以其他方式支持来自不太当前浏览器的用户。上面的链接应该为您提供所有您需要知道的信息。

从他们的网站:

  

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