gpt4 book ai didi

javascript - 有没有可靠的方法来找出我的浏览器支持哪个 ECMA-262 版本?

转载 作者:行者123 更新时间:2023-11-30 07:48:10 24 4
gpt4 key购买 nike

如何确定我的浏览器是否支持 Javascript 1.5?当然使用javascript。 (或者我应该再用谷歌搜索或狂吃一些东西吗?)

最佳答案

对于官方的“JavaScript”,即 Mozilla 的 ECMA-262 实现,您可以使用 type 属性来检测版本:

<script type="text/javascript;version=1.5"> v= '1.5'; </script>
<script type="text/javascript;version=1.6"> v= '1.6'; </script>
<script type="text/javascript;version=1.7"> v= '1.7'; </script>
...

这在 Opera 中也有效(最新版本声称支持 JavaScript 1.5)。 IE 和 Webkit 不会执行任何类型中带有版本参数的脚本。

这类似于老派的 language 属性:

<script language="javascript1.5"> v= '1.5'; </script>
...

这通常被认为已过时,但它确实适用于更多浏览器。最近的 Webkit 浏览器声称支持 1.7,所有 IE 都声称仅支持 1.3。

IE 有 its own versioning scheme对于 JScript,您可以通过条件注释对其进行嗅探:

<script type="text/javascript">
/*@cc_on @if (@_jscript_version>=5.5)
v= '5.5';
@end @*/
</script>

其他你找不到的浏览器。至于 ECMA-262 版本,所有现代浏览器都支持第三版的基线(是的,好吧,有一些小的差异和彻底的错误,尤其是在 IE 中,但仍然如此)。目前还没有浏览器支持大量的第五版,尽管那将会到来。 (没有第四版。)

这些都不是很有用。如您所见,版本号都非常模糊,并不能真正反射(reflect)浏览器支持的内容。通常最好不要进行能力嗅探。例如,如果您想要 ECMA-262-5 的 JSON 功能,请查看 window.JSON 是否存在。如果您想要函数绑定(bind),请查看您的函数中是否存在 .bind。您通常可以检测到此类功能的缺失,并在它们不可用时在原生 JavaScript 回退中进行修补。

然而,JavaScript 的语法特征是无法嗅探到的。仅仅在 JavaScript 代码块中包含诸如 getter/setter 定义之类的东西将立即在 IE 中给出语法错误,然后您才能嗅探它们的可用性。但这通常不是什么大问题,因为实际上您无论如何都无法使用这些较新的功能。

关于javascript - 有没有可靠的方法来找出我的浏览器支持哪个 ECMA-262 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1732576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com