Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';重定向不受支持的浏览器的最简单方法是什么?_Javascript_Html_Css_Cross Browser - Fatal编程技术网

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

Javascript 什么';重定向不受支持的浏览器的最简单方法是什么?,javascript,html,css,cross-browser,Javascript,Html,Css,Cross Browser,我正在编写一个支持IE9、Firefox 23、Chrome 29和safari 5.1的网站 我只想将所有其他浏览器重定向到一个单独的网页,上面写着“对不起,伙计,是时候做个男人了,买个真正的浏览器了。” 用最少的代码做这件事最简单的方法是什么?试试: 它是一个非常简单的js插件,允许您检测、重定向和以其他方式支持来自不太流行的浏览器的用户。上面的链接应该给你所有你需要知道的 从他们的网站: Modernizer使编写条件JavaScript和 CSS来处理每种情况,无论浏览器是否支持功能 不

我正在编写一个支持IE9、Firefox 23、Chrome 29和safari 5.1的网站

我只想将所有其他浏览器重定向到一个单独的网页,上面写着“对不起,伙计,是时候做个男人了,买个真正的浏览器了。”

用最少的代码做这件事最简单的方法是什么?

试试:

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

从他们的网站:

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


功能检测是一种方法,而不是浏览器嗅探,但为了向您提供您似乎在寻找的答案,我精心制作了以下内容:

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/';
}
var浏览器=(函数(){
var ua=navigator.userAgent,
M=ua.match(/(opera | chrome | safari | firefox | msie | trident(?=\/)\/?\s*([\d\.]+)/i)|【】,
透射电镜;
if(/trident/i.test(M[1])){
tem=/\brv[:]+(\d+(\.\d+))/g.exec(ua)| |[];
返回['ie',(tem[1]| |''');
}
M=M[2]?[M[1].toLowerCase(),M[2]]:[navigator.appName.toLowerCase(),navigator.appVersion',-?';
如果((tem=ua.match(/version\/([\.\d]+)/i))!=null)M[2]=tem[1];
返回M;
})();
支持的变量={
“ie”:9,
“铬”:29,
“狩猎”:5.1
}

如果(支持[浏览器[0]]与其检查特定的浏览器版本,不如真正检查功能,如果不满足这些功能,则重定向。阅读本文:谢谢,为什么功能检测比浏览器嗅探更好?这难道不意味着我需要测试代码中使用的每个功能吗?因为对于浏览器检测,您需要保留检测脚本最新。如果浏览器签名发生更改,您将无法再正确检测它。例如,IE11刚刚更改了他们的签名,旧的浏览器检测脚本将因此中断。此外,您将如何处理所有非常奇怪的浏览器(Lynx、Maxthon、NetSurf、Retawq、Rockmelt等)?通过功能检测,您知道您的浏览器需要具备什么功能,如果没有,它将重定向。@Steve谢谢,那么测试我代码中的每个函数是最佳做法吗?@alias51它通常归结为检测您的目标浏览器支持的最新功能,例如,是最新添加的ES5功能之一。谢谢,我正在查看不过,如果要重定向浏览器,这是我不想要的优雅降级。