Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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_Cross Browser - Fatal编程技术网

浏览器对JavaScript版本的支持

浏览器对JavaScript版本的支持,javascript,cross-browser,Javascript,Cross Browser,我们正在启动一个项目,希望实现跨浏览器兼容——这似乎表明我们需要确保我们正在使用的JavaScript版本在我们打算支持的所有浏览器中都能正常工作。以下是测试每个浏览器中JavaScript级别的合理方法吗 <script language="javascript1.0">alert("Your browser at least supports JavaScript 1.0");</script> <script language="javascript1.1"&

我们正在启动一个项目,希望实现跨浏览器兼容——这似乎表明我们需要确保我们正在使用的JavaScript版本在我们打算支持的所有浏览器中都能正常工作。以下是测试每个浏览器中JavaScript级别的合理方法吗

<script language="javascript1.0">alert("Your browser at least supports JavaScript 1.0");</script>
<script language="javascript1.1">alert("Your browser at least supports JavaScript 1.1");</script>
<script language="javascript1.2">alert("Your browser at least supports JavaScript 1.2");</script>
<script language="javascript1.3">alert("Your browser at least supports JavaScript 1.3");</script>
<script language="javascript1.4">alert("Your browser at least supports JavaScript 1.4");</script>
<script language="javascript1.5">alert("Your browser at least supports JavaScript 1.5");</script>
<script language="javascript1.6">alert("Your browser at least supports JavaScript 1.6");</script>
<script language="javascript1.7">alert("Your browser at least supports JavaScript 1.7");</script>
<script language="javascript1.8">alert("Your browser at least supports JavaScript 1.8");</script>
alert(“您的浏览器至少支持JavaScript 1.0”);
警报(“您的浏览器至少支持JavaScript 1.1”);
警报(“您的浏览器至少支持JavaScript 1.2”);
警报(“您的浏览器至少支持JavaScript 1.3”);
警报(“您的浏览器至少支持JavaScript 1.4”);
警报(“您的浏览器至少支持JavaScript 1.5”);
警报(“您的浏览器至少支持JavaScript 1.6”);
警报(“您的浏览器至少支持JavaScript 1.7”);
警报(“您的浏览器至少支持JavaScript 1.8”);
显然,随着更多JavaScript版本的发布,测试列表可以扩展

是否有更好的方式(或来源)获取此信息

顺便说一下,我确实看到了,它似乎与我运行上面的代码片段时得到的结果不一致

我的结果是:

Firefox 43.0.4-报告支持JavaScript 1.0到1.5
IE 10.0.9200.17566-报告支持JavaScript 1.1至1.3
Chrome 47.0.2526.111 m版-报告支持JavaScript 1.0至1.7
Safari 5.1.7(7534.57.2)报告支持JavaScript 1.0到1.7
Opera 34.0.2036.50-报告支持JavaScript 1.0到1.7

以下是测试每个浏览器中JavaScript级别的合理方法吗

<script language="javascript1.0">alert("Your browser at least supports JavaScript 1.0");</script>
<script language="javascript1.1">alert("Your browser at least supports JavaScript 1.1");</script>
<script language="javascript1.2">alert("Your browser at least supports JavaScript 1.2");</script>
<script language="javascript1.3">alert("Your browser at least supports JavaScript 1.3");</script>
<script language="javascript1.4">alert("Your browser at least supports JavaScript 1.4");</script>
<script language="javascript1.5">alert("Your browser at least supports JavaScript 1.5");</script>
<script language="javascript1.6">alert("Your browser at least supports JavaScript 1.6");</script>
<script language="javascript1.7">alert("Your browser at least supports JavaScript 1.7");</script>
<script language="javascript1.8">alert("Your browser at least supports JavaScript 1.8");</script>
没有

不要使用
[language]
属性,这只会导致不兼容,尤其是随着时间的推移,更新的浏览器决定只支持
javascript3.8
或其他当前版本。如果要编写脚本,只需编写脚本:

<script src="filename.js"></script>

至于检测版本,您不需要检测JS版本。没有一个开发人员值得他们盐检查版本,他们检查功能。是这样一种特征检测资源。另一个是描述哪些浏览器支持哪些功能,以便您可以确定是否能够使用任何特定功能


在许多情况下,要获得最大的向后兼容性,您需要的是一组多边形填充,以复制您希望在旧浏览器上使用的任何新功能。

p.S.根据我的测试结果,JavaScript 1.3似乎是上述浏览器最新版本的公同分母…在您这样做之前,试着问自己这个问题:所有这些JavaScript版本之间有什么不同?现在所有浏览器基本上都支持所有文件上的XMLHttpRequest://不工作,或者需要在Safari 5+6上额外订阅DomSpection的MutationObserver。这就是说,IE已经有一段时间不重要了,而这正是大多数规格差异所在。@dandavis,只有在没有其他功能需要检测的情况下才应该求助于黑客版本检查。不,功能检测是指当实现在您需要的功能上存在错误时。例如,在旧safari中仅询问
if(window.MutationObserver)
不会告诉您,如果没有额外的解决方法,使用MutationObserver的代码在其他地方都可以工作,那么代码将无法按预期工作。深入研究任何大型流行框架或dom库,您将看到大量针对浏览器的修补程序,以涵盖特定的子功能问题。我110%同意优秀的开发人员不会像你在2008年看到的那样编写代码,开始时是
if(ie){…}else{…}
..@dandavis,我假设你没有误解我之前的陈述,因为你说了“不”,然后开始准确地描述我所说的。我的观点是,当支持旧设备/浏览器时,仅特征检测有时是不够的。