我正在研究角度4应用程序,并且它在除IE11和边缘之外的所有浏览器上都能正常工作,我检查解决方案并添加了es15支持并添加了polyfill来支持IE,但它仍然无法正常工作。
问题:首次在IE上加载并在几次刷新后加载但未完全加载。
我已经按照here
所述完成了填充修补程序任何帮助都很明显
由于
答案 0 :(得分:7)
在尝试了不同的方法和模块之后,我最终得到了以下解决方案,以便在所有浏览器上兼容angular 4 app。
* BROWSER POLYFILLS
*/
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
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/es6/reflect';
import 'core-js/client/shim';
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js'; // Run `npm install --save classlist.js`.
/** IE10 and IE11 requires the following to support `@angular/animation`. */
import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/** ALL Firefox browsers require the following to support `@angular/animation`. **/
import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/***************************************************************************************************
* Zone JS is required by Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/
/* polyfill ie11 */
import 'core-js/es7/array';
import 'core-js/es7/reflect';
/**
* Date, currency, decimal and percent pipes.
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
*/
// Run `npm install --save intl`.
import 'intl';
import 'intl/locale-data/complete.js';
import 'intl/locale-data/jsonp/en.js';
if (typeof SVGElement.prototype.contains == 'undefined') {
SVGElement.prototype.contains = HTMLDivElement.prototype.contains;
}
根据您在项目中安装的模块,您可能需要一些其他的polyfill,因为有些图表和图形有时需要一些额外的配置。
答案 1 :(得分:3)
我在edge上遇到了同样的问题。添加所有必要的polyfill后,我的网站没有在边缘加载。
我发现[hidden]
属性在用Edge在网页上呈现内容时存在一些问题(因为它在Google Chrome,Mozilla和IE中工作得很好),并且删除了该属性后,网站在Edge中加载得很好。
因此,我使用[hidden]
来显示和隐藏内容,而不是使用*ngIf
。
我为此发现在Microsoft Edge中不起作用的可能原因是:-
隐藏全局属性是一个布尔型属性,指示该元素尚未或不再相关。因此,浏览器不会渲染具有隐藏属性集的元素。
浏览器将“ display: none
”样式附加到具有隐藏属性的元素上。
并且当组件加载时,样式“显示:无”不会自动更新。
并且*ngIf
不会基于显示属性(如隐藏)显示/隐藏元素。它通过在DOM中添加和删除元素来工作。