有没有办法警告使用IE版本不支持的JavaScript功能?

时间:2016-06-10 17:11:59

标签: javascript internet-explorer static-analysis

我在一家使用Typescript进行大多数新开发的商店工作,因此我们非常习惯使用像箭头函数这样的ES6功能,并通过转换步骤让它们对Internet Explorer安全。但本周我不得不编辑一个现有的js文件(没有转换)并且愚蠢地使用了箭头功能。这在我的现代开发浏览器中运行良好,但在IE 9下的QA中打破了。

所以我知道这是我的愚蠢错误,但我想知道是否有工具可以警告,如果不符合特定浏览器版本的功能被用作双重检查?如果这有一个很好的Visual Studio集成,但我在向我的工作流程添加命令行步骤没有问题。我看了看ESHint,但没有看到那种规则。

1 个答案:

答案 0 :(得分:-1)

如果您只是在谈论IE(我对Typescript一无所知)和Visual Studio,您可以在VS中使用以下内容:

    WinPath = System.Environment.GetEnvironmentVariable("SystemRoot")   ''MsgBox(WinPath)

    On Error Resume Next

    Dim ver = FileVersionInfo.GetVersionInfo(WinPath & "\system32\ieframe.dll")
    Dim IE = Val(ver.ProductVersion) ''MsgBox(IE)

这将返回本地机器IE版本 - 这是你想要的吗?

如果没有,Javascript可以使用此脚本检测它正在使用哪个浏览器:

var browser=navigator.userAgent;
var IE=browser.search(/(MSIE ?[7891]|Trident|Edge\/)/i);    //=-1: not MS
if (IE!=-1) {
    T=browser.substr(IE,7);
    if (T.search(/^M/)==0) IE=parseInt(T.substr(4));
    else if (T.search(/^T/)==0) IE=11;
    else IE=12; //Edge
}
else IE=13; //not IE,Edge

把它放在你的onload函数并做出相应的反应(好吧,所以它只有IE版本,Edge或其他......但是......)