web-dev-qa-db-fra.com

Erreur dans le navigateur IE 11 - EXCEPTION: l'objet ne prend pas en charge la propriété ou la méthode "correspond", l'autre navigateur fonctionne correctement

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.

In all browser it runs fine but in IE 11 the following error pops up. any help.

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"
    ]
  }
}
15
stec1

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;
}
23
Sanjay Gupta

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.

11
Michael Coxon

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.

7
Derek Brown