Dans mon cas, la page Web fonctionne correctement dans Firefox et le navigateur chrome mais dans IE v.11, elle affiche une erreur sous la forme l'erreur vient de IE 11 OUTILS DE DÉVELOPPEUR . L'erreur apparaît dans les outils de développement de IE 11. L'erreur ne permet pas d'ouvrir un lien perticulaire, en cliquant dessus elle montre l'erreur suivante.
polyfills.ts -
* 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/set';
/** 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`.
/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
/** 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
*/
/**
* Date, currency, decimal and percent pipes.
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
*/
// import 'intl'; // Run `npm install --save intl`.
tsconfig.spec.json -
"compilerOptions": {
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"es2016"
],
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es6",
"baseUrl": "",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts"
],
"include": [
"**/*.spec.ts"
]
}
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"target": "es5",
"experimentalDecorators": true,
"lib": [
"es2015"
]
}
}
J'étais confronté au même problème après avoir mis à jour mon projet de Angular 5 à 6. J'ai trouvé une solution à l'aide du commentaire de Derek Brown. La solution consiste à ajouter ce qui suit dans le polyfill.ts
fichier:
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.msMatchesSelector;
}
Pour ceux qui utilisent Angular 6 et 7 (TypeScript), vous devez modifier la réponse de Sanjay Gupta ci-dessous avec:
if (!Element.prototype.matches) {
Element.prototype.matches = (<any>Element.prototype).msMatchesSelector ||
Element.prototype.webkitMatchesSelector;
}
Le casting (enfin, non typé, vraiment) permet au transpilateur d'analyser la méthode non définie.
Il ressemble à IE implémente la fonction matches
en utilisant un nom non standard ( source ). Ce lien inclut un polyfill qui définira le matches
fonctionne pour pouvoir être utilisé sur IE.