浏览器对JavaScript版本的支持
我们正在启动一个项目,希望实现跨浏览器兼容——这似乎表明我们需要确保我们正在使用的JavaScript版本在我们打算支持的所有浏览器中都能正常工作。以下是测试每个浏览器中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"&
<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.5IE 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,我假设你没有误解我之前的陈述,因为你说了“不”,然后开始准确地描述我所说的。我的观点是,当支持旧设备/浏览器时,仅特征检测有时是不够的。