什么'这是重定向不受支持的浏览器的最简单方法
What's the easiest way to redirect unsupported browsers?
我正在编写一个支持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来处理每种情况,无论浏览器是否支持某个功能不它非常适合轻松进行渐进式增强。
相关文章:
- jQuery检测浏览器是否支持Zoom
- 任何浏览器都不支持javascript函数
- Javascript Q库浏览器支持
- 如何(功能)检测浏览器是否支持WebM alpha透明度
- 浏览器支持某些if语句
- 当浏览器直接支持基于ECMAScript 6的javascript时,Microsoft Typescript会过时吗
- 哪些浏览器支持javascript常量
- 选择性地支持某些浏览器
- 移动浏览器没有;t支持会话变量
- 如何检查浏览器中是否支持文本溢出:省略号
- 浏览器兼容性/支持较新版本
- Semantic-UI JavaScript:如何检查支持的浏览器
- 是否有用于CSS浏览器支持新功能的javascript解决方案
- 检查浏览器是否支持iFrame上的加载方法
- 网络摄像头支持野生动物浏览器
- 确保浏览器 AS3 支持限制
- 有没有办法使非html5支持浏览器支持html5,而不仅仅是html5标记,html5 api也是如此
- JavaScript是否支持浏览器中的ByteArray类
- 树节点以支持浏览器兼容性
- Jquery UI选项卡支持浏览器的后退按钮