#angular #outlook #outlook-addin #outlook-web-addins #polyfills
Вопрос:
Мы разрабатываем надстройку Outlook с использованием angular. Надстройка работает в IE11, Edge, Chrome и Safari, но в версиях настольных приложений Windows Outlook ( Вот мой файл pollyfills:
/***************************************************************************************************
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js'; // Run `npm install --save classlist.js`.
import 'intersection-observer';
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es7/array';
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
Я также добавил
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
в index.html.
Эти два решения я мог бы найти в Google, но они не работают.
Вот ошибки, которые я получаю:
Exception was thrown at line 1, column 25670 in mydomain.com/polyfills-
es5.39e9f85b88cc5eac0d73.js
0x800a138f - JavaScript runtime error: Object.getPrototypeOf: 'this' is not an Object
Exception was thrown at line 1, column 203956 in mydomain.com/polyfills-
es5.39e9f85b88cc5eac0d73.js
0x800a138f - JavaScript runtime error: Object.keys: argument is not an Object
Exception was thrown at line 1, column 46550 in mydomain.com/polyfills-
es5.39e9f85b88cc5eac0d73.js
0x800a138f - JavaScript runtime error: Object.freeze: argument is not an Object
Exception was thrown at line 1, column 1586 in mydomain.com/polyfills-
es5.39e9f85b88cc5eac0d73.js
0x800a138f - JavaScript runtime error: Object.seal: argument is not an Object
Любая помощь в этом вопросе была бы полезна. Спасибо
Ответ №1:
AngularJS зависит от нескольких API window.history, эти API не поддерживаются настольной средой выполнения IE. Поэтому при использовании AngularJS вы должны аннулировать API window.history, добавив <script>window.history.replaceState=null;window.history.pushState=null;</script>
в свой index.html страница. Кроме того, всегда полезно проверять наличие проблем с заполнением при использовании IE webview.