如何判断我的浏览器是否支持Javascript 1.5?当然使用javascript。 (或者我应该用谷歌搜索还是bin更多?)
答案 0 :(得分:3)
它通常不值得尝试。
如果您想使用特定功能,请查询是否支持该功能。
即便如此,也无法保证该功能正确实施! ; - )
例证...... IE支持document.getElementById(id);
但是除非你在IE8标准模式下使用IE8,否则它会返回许多错误结果中的一个。
答案 1 :(得分:3)
对于官方“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对JScript有its own versioning scheme,你可以通过条件评论来嗅探它:
<script type="text/javascript">
/*@cc_on @if (@_jscript_version>=5.5)
v= '5.5';
@end @*/
</script>
您无法找到的其他浏览器。至于ECMA-262版本,所有现代浏览器都支持第三版的基线(是的,好的,存在细微的差异和彻头彻尾的错误,特别是在IE中,但仍然如此)。没有浏览器支持大量的第五版,尽管这将会到来。 (没有第四版。)
这些都不是很有用。正如您所看到的,版本号都非常简洁,并没有真正反映出浏览器的支持非常好。你通常更善于嗅探能力。例如,如果您需要ECMA-262-5的JSON
功能,请查看是否存在window.JSON
。如果您想要功能绑定,请查看您的功能是否存在.bind
。您通常可以检测到缺少此类功能并在本机JavaScript后备补丁中检测它们何时不可用。
然而,JavaScript的语法特征无法被嗅探。在JavaScript代码块中包含类似getter / setter定义的内容会立即在IE中出现语法错误,然后才能嗅探它们的可用性。但是这通常不是太大的问题,因为在实践中你无论如何都不能使用这些新功能。
答案 2 :(得分:1)
你可以采用另一种方式,你可以在里面试试阻止它的一些语法。例如:
try{
"use strict";
let x=1;//if it's works, then you have some supprot
console.info("Good news, ecma6 works ");
}catch(e){
console.warn("Sorry, but ecma6 still doesn't supported");
}
答案 3 :(得分:0)
您可以指定哪个版本的Javascript应该像这样评估代码块:
<script language="javascript1.5">
//this code gets run
</script>
更多信息here。
答案 4 :(得分:0)
有些脚本会生成一个包含Javascript版本的浮点数。这是一个很好的Javascript检测:https://developer.mozilla.org/En/Browser_Detection_and_Cross_Browser_Support
以下是这样的脚本:http://www.docsteve.com/DocSteve/Samples/JS/js_version.html