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

标签 javascript html css cross-browser

我正在编写一个支持 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/

相关文章:

javascript - 从 Firebase 加载数据时,AngularJS 过滤器不起作用

javascript - Firefox 扩展 : Access to main document from sidebar

html - 如何使用 css 制作一个页面,背景图像被覆盖,滚动且响应迅速?

javascript - PHP-GET + Jquery 添加/删除类

html - CSS/字体 - 混合内容问题

javascript - Node.js CORS session cookie 与 Angular.js

javascript - 允许 Vue 2 Select Component 接受一个数组来选择选项

html - 尝试使用样式表主题更改验证控件的颜色

Jquery 匹配值到数组

html - Bootstrap : Right align vertical pills