Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 - Fatal编程技术网

Javascript 如何提醒用户其浏览器不是最新版本?

Javascript 如何提醒用户其浏览器不是最新版本?,javascript,html,Javascript,Html,我找到了这个的.NET版本,但找不到javascript/jquery方法来实现这一点。我用最新的IE/Chrome/FF/Safari/Opera测试我的网站。在不增加向后兼容性的情况下,这是一项非常困难的任务(对我来说)。这条信息只需使用另一个最新的浏览器即可。有任何脚本可以这样做吗?我希望找到一个资源来跟踪这类事情,这样我就不必了。检查这些家伙做了什么:。您可以轻松地将其集成,并提供代码示例: 这将很难单独实现,您必须定期更新浏览器版本数据。一种解决方案是在div中包含警告消息,该div将

我找到了这个的.NET版本,但找不到javascript/jquery方法来实现这一点。我用最新的IE/Chrome/FF/Safari/Opera测试我的网站。在不增加向后兼容性的情况下,这是一项非常困难的任务(对我来说)。这条信息只需使用另一个最新的浏览器即可。有任何脚本可以这样做吗?我希望找到一个资源来跟踪这类事情,这样我就不必了。

检查这些家伙做了什么:。您可以轻松地将其集成,并提供代码示例:


这将很难单独实现,您必须定期更新浏览器版本数据。

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

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

使用类似这样的东西,您可以分解字符串并获得版本

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);
}
var objappVersion=navigator.appVersion;
var objAgent=navigator.userAgent;
var objbrowserName=navigator.appName;
var objfullVersion=''+parseFloat(navigator.appVersion);
var objbrmajorvision=parseInt(navigator.appVersion,10);
变量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);
}//在Firefox中
else if((objOffsetVersion=objAgent.indexOf(“Firefox”)!=-1){
objbrowserName=“Firefox”;
}
else if((objOffsetVersion=objAgent.indexOf(“Safari”))!=-1){
objbrowserName=“Safari”;
objfullVersion=objAgent.substring(objOffsetVersion+7);
如果((objOffsetVersion=objAgent.indexOf(“Version”))!=-1)objfullVersion=objAgent.substring(objOffsetVersion+8);
}//对于其他浏览器,“名称/版本”位于userAgent的末尾
如果((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;
}
}
如果((ix=objfullVersion.indexOf(“;”)!=-1)objfullVersion=objfullVersion.substring(0,ix);
如果((ix=objfullVersion.indexOf(“”)!=-1)objfullVersion=objfullVersion.substring(0,ix);
objBrMajorVersion=parseInt(“”+objfullVersion,10);
if(isNaN(OBJBR版本)){
objfullVersion=''+parseFloat(navigator.appVersion);
objBrMajorVersion=parseInt(navigator.appVersion,10);
}
示例代码来自


但是,使用可能缺乏支持的单个功能检查兼容性,并告知用户任何不兼容的地方,并解释任何后果,可能会更加有益。

您可以使用,但是。。。你真的认为人们会升级他们的浏览器只是为了看你的网站吗?@WanderNauta我不在乎他们怎么想。这个答案与我的帖子完全不符。我没有要求告诉用户升级的方法。我会通知他们,除非他们使用最新版本的浏览器,否则该功能将无法工作。由他们做出决定:更新、使用其他浏览器,或者什么都不做。如果他们什么也不做,那就是他们的损失。通常你不需要做任何事情来实现这一点。许多浏览器会自动检查更新,或者告诉用户何时有更新准备就绪,或者自动更新自己。例如,Chrome会在每次启动时更新,并更定期地检查更新情况。@user1006177:如果人们什么都不做,他们就不会访问您的网站,这通常是您的损失。为什么您希望您的页面只能在最新版本上工作?您确定发布新版本时,您的页面将停止使用之前最新的版本(并且将在新版本上工作)?但这只是媒体查询的功能检测?它不会检查最新版本。它会检查比代码中定义的某些版本旧的版本。@JukkaK.Korpela您在某种程度上是错的。每个实现都会做到这一点。浏览器没有版本API,因此需要检查硬编码版本。因此,您需要定期更新这些版本,并跟踪浏览器开发。这就是这些人为你做的。他们已经实现并运行了所有这些功能,他们提供了一个简单的API来访问该日期+一个脚本,如果您在过时的浏览器上运行,该脚本将添加一个通知。问题是“如何提醒用户他们的浏览器不是最新版本?”我只是简单地指出,推荐的软件并不能做到这一点。@JukkaK.Korpela恰恰相反。正是这样。