Библиотека JavaScript для имитации среды JavaScript в Internet Explorer?

Это не дубликат библиотеки JS для моделирования вопроса Internet Explorer? о моделировании поддержки CSS в Internet Explorer; это касается функций JavaScript.

Существует ли библиотека JavaScript, которая может имитировать среду, такую ​​как Internet Explorer, в то время как функции JavaScript связаны?

В принципе, он удаляет/перезаписывает функции, не поддерживаемые более старыми версиями IE (например, indexOf и т.д.), или, по крайней мере, принуждает любой вызов к ним как-то игнорировать.

Фактически, я ищу что-то почти как противоположное Underscore.js и которое теоретически может даже использоваться для тестирования (в браузерах, отличных от IE), что Underscore.js делает то, что он хотел сделать.

Или это количество усилий, необходимых для симуляции настолько маленькой среды, что я могу сделать это быстро сам? Если да, то как?


Пример использования, который я представляю:

Использование этого script для моделирования среды IE7 в Phantom.js Браузер WebKit для автоматического (Jenkins) тестирование с помощью Jasmine/QUnit/etc (undecided).

Ответ 1

Я бы посоветовал это сделать, потому что вы будете тестировать, насколько хорошо вы поддерживаете эту симуляцию, а не IE7. Двигатель IE7 в основном совместим со стандартами, за исключением нескольких причуд (например, плохая реакция на зависание запятых) и, конечно, отсутствие среды из самых последних стандартов. Большинство из этих причуд либо соответствуют другим браузерам, либо не могут быть легко эмулированы без написания полного JS-движка в JS. Вы можете захотеть ознакомиться со списком в ES wiki для более подробной информации (и отметить разделы "FF/Opera/Safari: same", где вы, вероятно, будете хотите не учитывать расхождения IE с ES).

Лучше всего использовать либо настоящий IE7, который, BTW, очень хороший интерфейс автоматизации для почти любого тестирования или, по крайней мере, более позднюю версию IE с включенным режимом совместимости.

Ответ 2

Возможно, вы после чего-то вроде этого: http://triflejs.org/ (в настоящее время в бета-версии)

Его порт IE phantomjs для запуска тестов безглавых UI.

Как и phantom, он использует V8 для запуска исполняемых сценариев API JavaScript, а вместо webkit использует .NET WebBrowser класс для создания экземпляра IE-движка с голой костью.

IE предоставляет среду эмуляции для запуска более ранних версий, поэтому она будет работать как IE7, IE8 и IE9, если у вас установлен IE9.

enter image description here