IE erreur Javascript “cet Objet ne gère pas cette propriété ou cette méthode” à l'intérieur de jQuery
Pour une raison quelconque, j'obtiens l'erreur Javascript suivant dans Internet Explorer 8 sur la ligne 3156 de jquery.js (version 1.4.3, non-compressée de la version): Object doesn't support this property or method
. Aucune erreur ne se produit dans Firefox et Google Chrome.
C'est la ligne de l'erreur se produit sur:
if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
Enquête (console.log(Expr.leftMatch[type])
) produit est le suivant résultat intéressant: Dans Google Chrome, il génère
/(^(?:.|\r|\n)*?):((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\))?(?![^\[]*\])(?![^\(]*\))/
Cependant dans Internet Explorer, c'est la sortie:
function() {
var p = this;
do p = p.previousSibling;
while (p && p.nodeType != 1);
return p;
}
Sur lequel exec
ne peut pas être appelé (il n'est pas défini). La cité de la fonction n'est pas présente au sein de jquery.js. Quelqu'un a une idée de pourquoi cela se passe, ou ce que je peux faire pour le résoudre?
J'ai, malheureusement, pas encore été en mesure de créer un script simple pour reproduire le problème, bien que je n'ai trouver ce post de quelqu'un ayant le même problème, mais il n'offre pas une solution (le dernier post suggère la page doit être exécuté en Mode standard, mais le mien ne l'est déjà).
Quoi? - Est ce message d'erreur pas assez précis pour toi? 😀 (près aussi utile que la "Undefined n'est pas une fonction" message d'erreur) 😉
@Pointu: "previousObject".
Eh bien, si c'est vrai - que le Grésillement de tables internes ont poubelle en eux - puis quelque chose est allé terriblement mal quelque part.
De toute évidence, mais pourquoi? Et comment le résoudre? Et pourquoi il ne se produisent que dans IE?
OriginalL'auteur Aistina | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
Comme il s'avère, j'ai réussi à le comprendre par moi-même après plusieurs longues heures. Il semble que le Grésillement sélecteur moteur casse dans cette voie inattendue (et uniquement dans Internet Explorer), si vous avez défini
Object.prototype.previousObject
ailleurs.Retrait de cette déclaration, ou de renommer des
previousObject
à autre chose résout le problème.La chose drôle est, j'ai mis que le code moi-même (le
Object.prototype.previousObject = [the function in my question]
), mais je n'ai pas reconnaître le code.Bien, c'est une autre journée pleine de potentiel de développement gaspillée.
x2 merci de poster une mise à jour pour tout le monde.
Leçon apprise, ne plaisante pas avec les protoype de l'Objet
même ici, merci pour cette
OriginalL'auteur Aistina
(Malheureusement, ma réputation est telle que je ne peux pas commenter directement sur la solution ci-dessus)
J'ai découvert le même comportement se produit si vous tentez d'ajouter une méthode appelée "hérité" de l'Objet.prototype, c'est à dire
Object.prototype.inherited = <some func>
Il affecte IE6, 7 & 8 mais semble être fixé dans IE9 (bêta)
OriginalL'auteur Malcolm
Pour info, nous avons également eu le même problème lorsque nous avons redéfini
Object.prototype.keys
.OriginalL'auteur Joyce
quelle version de IE vous êtes en cours d'exécution?
Êtes-vous par hasard l'exécution en mode de compatibilité? Si vous sont à l'essai sur un domaine local, par défaut IE ensembles de mode de compatibilité, et j'ai connu aléatoire bizarre questions de ce genre.
Si vous utilisez IE 8, vous pouvez essayer de changer le mode de navigation dans les outils de développement(f12) pour voir si le problème persiste encore.
Documents Mode: IE8 Standards
.OriginalL'auteur brian brinley