À l'aide de la fenêtre.emplacement.de hachage.comprend " lance “l'Objet ne prend pas en charge la propriété ou de la méthode 'comprend'” dans IE11
Je suis la vérification de l'URL pour voir si elle contient un ?
en elle de contrôler la valeur de hachage de la pop de l'état dans la fenêtre. Tous les autres navigateurs ne sont pas un problème, seul IE.
Le débogueur me donne cette erreur quand j'essaye de charger de cette façon:
Objet ne prend pas en charge la propriété ou de la méthode '
includes
'
Je n'ai pas de message d'erreur quand je charge la page, à travers la popstate.
$(document).ready(function(e) {
if(window.location.hash) {
var hash;
if(window.location.hash.includes("?")) {
alert('I have a ?');
hash = window.location.hash.substring(window.location.hash.indexOf('#') + 0,window.location.hash.indexOf('?'));
}else {
hash = window.location.hash;
};
if (hash=="#DRS" || hash=="#DRP" || hash=="#DFFI" || hash=="#DCI" || hash=="#DCP" || hash=="#DRP" || hash=="#DRMA" || hash=="#EICS" || hash=="#ORG"){
$(hash+'Content').addClass('pageOn').removeClass('pageOff');
}else {
$('#homeContent').addClass('pageOn').removeClass('pageOff');
};
} else {
$('#homeContent').addClass('pageOn').removeClass('pageOff');
}
$(window).on('popstate', function() {
var hash;
if(window.location.hash.includes("?")) {
hash = window.location.hash.substring(window.location.hash.indexOf('#') + 0,window.location.hash.indexOf('?'));
}else {
hash = window.location.hash;
};
if (hash=="#DRS" || hash=="#DRP" || hash=="#DFFI" || hash=="#DCI" || hash=="#DCP" || hash=="#DRP" || hash=="#DRMA" || hash=="#EICS" || hash=="#ORG"){
$(this).navigate({target: $(hash+'Content')});
if(window.location.hash.includes("?")) {
}else{
location.href = location.href+'?';
}
}else {
$(this).navigate({target: $('#homeContent')});
};
});
});
- Quelle est la valeur de
window.location.hash
dans internet explorer 11?
Vous devez vous connecter pour publier un commentaire.
Selon la MDN page de référence,
includes
n'est pas pris en charge dans Internet Explorer. La plus simple solution consiste à utiliser desindexOf
, comme ceci:IE11 n'en œuvre de la Chaîne.le prototype.comprend alors pourquoi ne pas utiliser le officiel Polyfill?
Source: polyfill source
Ajoutant
import 'core-js/es7/array';
à monpolyfill.ts
résolu le problème pour moi.J'ai eu un problème similaire avec un Angulaires du projet. Dans mon polyfills.ts j'ai dû ajouter deux:
En plus de l'activation de tous les autres IE 11 valeurs par défaut. (Voir les commentaires dans les polyfills.ts si vous utilisez angulaire)
Après l'ajout de ces importations, l'erreur a disparu et mon Objet de données peuplées comme prévu.
Que dans Internet Explorer, la méthode javascript "comprend" ne prend pas en charge qui conduit à l'erreur comme ci-dessous
bibliothèque dijit.forme.FilteringSelect TypeError: Objet ne prend pas en charge la propriété ou de la méthode 'comprend'
J'ai donc changé le JavaScript de la méthode de chaîne de "comprend" à "indexOf" comme ci-dessous
J'ai utilisé
comprend
deLodash
qui est vraiment similaire à la maternelle.Je suis en utilisant ReactJs et utilisé
import 'core-js/es6/string';
au début deindex.js
à résoudre mon problème.Je suis également en utilisant
import 'react-app-polyfill/ie11';
à l'appui de l'exécution de Réagir dans IE11.https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md
npm i --save core-js react-app-polyfill
core-js/es6
semble pas exister de plus en v3, il suffit donc deimport 'core-js';
comme suggéré dans Github.Cette question et ses réponses m'ont conduit à ma propre solution (avec l'aide de la SORTE), bien que certains disent que vous ne devriez pas altérer natif de prototypes:
Ensuite, j'ai juste remplacé tous les
.includes()
avec.doesInclude()
et mon problème a été résolu..includes ()
fonctionne sur les deux chaînes de caractères et les tableaux. Votresubstring()
solution ne fonctionne qu'avec des cordes et échoue avec les tableaux. Comme répondu par d'autres personnes, à l'aide deindexOf()
au lieu desubstring()
est mieux parce que cela fonctionne dans les deux cas.