如何提醒用户他们的浏览器不是最新版本?

时间:2014-06-14 12:41:46

标签: javascript html

我找到了这个的.NET版本,但找不到javascript / jquery方法来做到这一点。我在最新的IE / Chrome / FF / Safari / Opera中测试我的网站。这对我来说是一项艰巨的任务,而不会增加向后兼容性。该消息将仅使用另一个最新的浏览器。有没有这样做的脚本?我希望找到一种跟踪此类事情的资源,所以我不必这样做。

3 个答案:

答案 0 :(得分:1)

您可以使用navigator.appVersion查找版本并使用navigator.appName过滤相关版本,它可以为您提供一个版本号,您可以与您可以设置的最低版本进行比较。

使用像(JSFiddel)这样的东西你可以分解字符串并获得版本。

var objappVersion = navigator.appVersion;
var objAgent = navigator.userAgent;
var objbrowserName = navigator.appName;
var objfullVersion = '' + parseFloat(navigator.appVersion);
var objBrMajorVersion = parseInt(navigator.appVersion, 10);
var objOffsetName, objOffsetVersion, ix;
if ((objOffsetVersion = objAgent.indexOf("Chrome")) != -1) {
    objbrowserName = "Chrome";
    objfullVersion = objAgent.substring(objOffsetVersion + 7);
}
else if ((objOffsetVersion = objAgent.indexOf("MSIE")) != -1) {
    objbrowserName = "Microsoft Internet Explorer";
    objfullVersion = objAgent.substring(objOffsetVersion + 5);
} // In Firefox
else if ((objOffsetVersion = objAgent.indexOf("Firefox")) != -1) {
    objbrowserName = "Firefox";
}
else if ((objOffsetVersion = objAgent.indexOf("Safari")) != -1) {
    objbrowserName = "Safari";
    objfullVersion = objAgent.substring(objOffsetVersion + 7);
    if ((objOffsetVersion = objAgent.indexOf("Version")) != -1) objfullVersion = objAgent.substring(objOffsetVersion + 8);
} // For other browser "name/version" is at the end of userAgent
else if ((objOffsetName = objAgent.lastIndexOf(' ') + 1) < (objOffsetVersion = objAgent.lastIndexOf('/'))) {
    objbrowserName = objAgent.substring(objOffsetName, objOffsetVersion);
    objfullVersion = objAgent.substring(objOffsetVersion + 1);
    if (objbrowserName.toLowerCase() == objbrowserName.toUpperCase()) {
        objbrowserName = navigator.appName;
    }
}
if ((ix = objfullVersion.indexOf(";")) != -1) objfullVersion = objfullVersion.substring(0, ix);
if ((ix = objfullVersion.indexOf(" ")) != -1) objfullVersion = objfullVersion.substring(0, ix);
objBrMajorVersion = parseInt('' + objfullVersion, 10);
if (isNaN(objBrMajorVersion)) {
    objfullVersion = '' + parseFloat(navigator.appVersion);
    objBrMajorVersion = parseInt(navigator.appVersion, 10);
}

来自here的示例代码。

然而,使用可能缺乏支持的个别功能检查兼容性可能更有利,并告知用户任何不兼容性并解释任何后果。

答案 1 :(得分:0)

检查这些人做了什么:Browser Update Initiative。您可以轻松集成它们,并提供代码示例:http://browser-update.org/

自行实施起来要困难得多,您必须定期更新浏览器版本数据。

答案 2 :(得分:0)

一种解决方案是在div中包含警告消息,并且此div隐藏在后续媒体查询部分中。只有支持CSS 3媒体查询的浏览器才会自动隐藏此警告消息div。