Поддержка старых браузеров Майкрософт и версий Office

Важно!

Internet Explorer и устаревшая версия Microsoft Edge по-прежнему используются в надстройках Office

Некоторые сочетания платформ и версий Office, включая бессрочные версии Office 2019, по-прежнему используют элементы управления webview, которые поставляются с Internet Explorer 11 и устаревшая версия Microsoft Edge (на основе EdgeHTML) для размещения надстроек, как описано в статье Браузеры, используемые надстройками Office. . Мы рекомендуем (но не требовать), чтобы вы поддерживали эти сочетания, по крайней мере в минимальной мере, предоставляя пользователям надстройки корректное сообщение о сбое при запуске надстройки в этих веб-представлениях. Помните о следующих дополнительных моментах:

  • Office в Интернете больше не открывается в Internet Explorer или устаревшая версия Microsoft Edge. Следовательно, AppSource не тестирует надстройки в Office в Интернете в этих браузерах.
  • AppSource по-прежнему тестирует сочетания версий платформы и классических версий Office, использующих Internet Explorer и устаревшая версия Microsoft Edge. Однако он выдает предупреждение только в том случае, если надстройка не поддерживает эти браузеры. Надстройка не отклоняется AppSource.
  • Средство Script Lab больше не поддерживает Internet Explorer.

Надстройки Office — это веб-приложения, которые отображаются в IFrame при выполнении на Office в Интернете. Надстройки Office отображаются с помощью встроенных элементов управления браузера при запуске в Office в Windows или Office на Компьютере Mac. Внедренные элементы управления браузера предоставляются операционной системой или браузером, установленным на компьютере пользователя.

Если вы планируете поддерживать более старые версии Windows и Office, надстройка должна работать во внедренных элементах управления браузера, используемых этими версиями. Например, элементы управления браузера на основе Internet Explorer 11 (IE11) или устаревшая версия Microsoft Edge (на основе EdgeHTML). Сведения о том, какие сочетания Windows и Office используют эти элементы управления браузера, см. в статье Браузеры, используемые надстройками Office.

Определение браузера, в котором выполняется надстройка во время выполнения

Надстройка может обнаружить браузер, в котором она работает, прочитав свойство window.navigator.userAgent . Это позволяет надстройке либо предоставлять альтернативный интерфейс, либо корректно завершать сбой. Ниже приведен пример, определяющий, работает ли надстройка в IE11 или устаревшая версия Microsoft Edge.

if (navigator.userAgent.indexOf("Trident") !== -1) {
    /*
       IE11 is the browser in use. Do one of the following:
        1. Provide an alternate add-in experience that doesn't use any of the HTML5
           features that aren't supported in IE11.
        2. Enable the add-in to gracefully fail by adding a message to the UI that
           says something similar to:
           "This add-in won't run in your version of Office. Please upgrade either to
           perpetual Office 2021 or to a Microsoft 365 account."
    */
} else if (navigator.userAgent.indexOf("Edge") !== -1) {
    /*
       Microsoft Edge Legacy is the browser in use. Do one of the following:
        1. Provide an alternate add-in experience that's supported in Microsoft Edge Legacy.
        2. Enable the add-in to gracefully fail by adding a message to the UI that
           says something similar to:
           "This add-in won't run in your version of Office. Please upgrade either to
           perpetual Office 2021 or to a Microsoft 365 account."
    */
} else {
    /* 
       Another browser, other than IE11 or Microsoft Edge Legacy, is in use.
       Provide a full-featured version of the add-in here.
    */
}

Важно!

Обычно считывать userAgent свойство не рекомендуется. Убедитесь, что вы знакомы со статьей Обнаружение браузера с помощью агента пользователя, включая рекомендации и альтернативы для чтения userAgent. В частности, если вы предоставляете альтернативный интерфейс надстройки для поддержки использования Internet Explorer 11, рассмотрите возможность обнаружения признаков вместо тестирования агента пользователя.

По состоянию на 30 сентября 2021 г. текст в разделе Какая часть агента пользователя содержит нужные сведения? датируется до выпуска Internet Explorer 11. Это по-прежнему в целом точно, и таблицы в разделе английской версии статьи актуальны. Аналогичным образом текст и в большинстве случаев таблицы в версиях статьи, отличных от английского, устарели.

Просмотр сведений о поддержке браузеров и версий Office

Чтобы получить дополнительные сведения о поддержке определенных браузеров и версий Office, перейдите на соответствующую вкладку.

Важно!

Internet Explorer 11 не поддерживает некоторые функции HTML5, такие как мультимедиа, запись и расположение. Если надстройка должна поддерживать Internet Explorer 11, необходимо либо разработать надстройку, чтобы избежать этих неподдерживаемых функций, либо надстройка должна определить, когда используется Internet Explorer, и предоставить альтернативный интерфейс, который не использует неподдерживаемые функции. Дополнительные сведения см. в разделе Определение браузера, в котором выполняется надстройка во время выполнения.

Поддержка последних версий JavaScript

Internet Explorer 11 не поддерживает версии JavaScript, более поздние, чем ES5. Если вы хотите использовать синтаксис и функции ECMAScript 2015 или более поздней версии или TypeScript, у вас есть два варианта, как описано в этой статье. Вы также можете объединить эти два метода.

Использование транспилера

Вы можете написать код в TypeScript или современном JavaScript, а затем транспилировать его во время сборки в ES5 JavaScript. Полученные файлы ES5 передаются в веб-приложение надстройки.

Есть два популярных транспилеров. Оба они могут работать с исходными файлами, которые являются TypeScript или JavaScript после ES5. Они также работают с файлами React (JSX и TSX).

Сведения об установке и настройке транспилировщика в проекте надстройки см. в документации по любой из них. Для автоматизации транспиляции рекомендуется использовать средство выполнения задач, например Grunt или WebPack . Пример надстройки, использующий tsc, см. в статье Надстройка Office Майкрософт Graph React. Пример, в котором используется babel, см. в статье Надстройка автономного хранилища.

Примечание.

Если вы используете Visual Studio (не Visual Studio Code), tsc, вероятно, проще всего использовать. Вы можете установить поддержку для него с помощью пакета nuget. Дополнительные сведения см. в статье JavaScript и TypeScript в Visual Studio 2019. Чтобы использовать babel с Visual Studio, создайте скрипт сборки или используйте обозреватель средства выполнения задач в Visual Studio с такими инструментами, как Средство выполнения задач WebPack или Средство выполнения задач NPM.

Использование полизаполнения

Polyfill — это Более ранняя версия JavaScript, которая дублирует функциональные возможности более поздних версий JavaScript. Polyfill работает в браузерах, которые не поддерживают более поздние версии JavaScript. Например, строковый метод startsWith не входит в версию JavaScript ES5 и поэтому не будет выполняться в Internet Explorer 11. Существуют библиотеки polyfill, написанные на ES5, которые определяют и реализуют startsWith метод. Рекомендуется использовать библиотеку polyfill core-js .

Чтобы использовать библиотеку polyfill, загрузите ее, как и любой другой файл или модуль JavaScript. Например, можно использовать <script> тег в HTML-файле домашней страницы надстройки (например <script src="/js/core-js.js"></script>, ) или import оператор в файле JavaScript (например, import 'core-js';). Когда обработчик JavaScript видит такой метод, как startsWith, он сначала посмотрит, есть ли метод с таким именем, встроенный в язык. Если это так, он вызовет собственный метод. Если метод не является встроенным и только если он не является встроенным, подсистема будет искать его во всех загруженных файлах. Таким образом, полизаполненные версии не используются в браузерах, поддерживающих собственную версию.

Импорт всей библиотеки core-js приведет к импорту всех функций core-js. Вы также можете импортировать только те polyfills, которые требуются надстройке Office. Инструкции о том, как это сделать, см. в разделе Api CommonJS. Библиотека core-js содержит большинство необходимых полизаполнения. Существует несколько исключений, подробно описанных в разделе Отсутствующие Polyfills документации core-js. Например, он не поддерживает fetch, но можно использовать выборку polyfill.

Пример надстройки, использующий core.js, см. в статье Надстройка Word Angular2 StyleChecker.

Тестирование надстройки в Internet Explorer

См. статью Тестирование Internet Explorer 11.

См. также