2016-06-10 1 views
1

Я работаю в магазине, который использует TypScript для большинства новых разработок, поэтому мы очень привыкли использовать функции ES6, такие как функции стрелок, и сделать их безопасными для Internet Explorer на этапе транспиляции. Но на этой неделе мне пришлось отредактировать существующий файл js (который не имеет транспиляции) и тупо использовал функцию стрелки. Это отлично работало в моих современных браузерах разработки, но нарушалось QA в IE 9.Есть ли способ предупредить об использовании функций JavaScript, не поддерживаемых в версиях IE?

Итак, я знаю, что это моя глупая ошибка, но мне интересно, есть ли инструменты, которые могут предупредить, если функции, не соответствующие конкретному браузеру версия используется для двойной проверки? Если у этого есть интеграция с Visual Studio, это было бы замечательно, но у меня нет проблем с добавлением этапа командной строки в мой рабочий поток. Я посмотрел на ESHint, но не видел такого правила.

+1

IE9 - отличный инструмент для проверки синтаксической корректности ваших сценариев в IE9; P – Paulpro

+0

Да ясно, и я включу IE 9 в свое самотестирование. И если я могу создать автоматическое предупреждение, это было бы неплохо. –

ответ

-1

Если вы просто говорите IE (я ничего не знаю о машинопись) и 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, или другие ... но ...)

Смежные вопросы