Je reçois l'erreur suivante de jQuery une fois qu'il a été mis à jour à v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Une idée de la raison ?
Je reçois l'erreur suivante de jQuery une fois qu'il a été mis à jour à v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Une idée de la raison ?
Mise à jour tout votre code qui appelle load
comme,
$(window).load(function() { ... });
Pour
$(window).on('load', function() { ... });
jquery.js:9612 Uncaught TypeError : url.indexOf n'est pas une fonction
Ce message d'erreur provient de jQuery.fn.load
fonction.
J'ai rencontré le même problème avec mon application. Après avoir creusé un peu, j'ai trouvé cette déclaration dans blog jQuery ,
.load, .unload, et .error, obsolètes depuis jQuery 1.8, ne sont plus . Utilisez .on() pour enregistrer des récepteurs.
Je modifie simplement la façon dont mes objets jQuery appellent la fonction load
comme ci-dessus. Et tout fonctionne comme prévu.
C'est fou qu'il n'y ait pas un gros avertissement sur cette page dans leur documentation, api.jquery.com/load .
J'ai trouvé que c'était exactement le problème que je rencontrais lorsque je bootstrapais zurbs foundation dans aurelia
Il est assez ironique de constater que le seul endroit où je faisais encore cela était dans un code de gestion des erreurs qui s'est ensuite cassé tout seul :-/
Merci beaucoup. J'ai toujours une erreur, James a suggéré d'utiliser .trigger, ce qui a fonctionné. jQuery.fn.load = function (callback) {$(window).trigger("load", callback) ; } ;
Solution étonnante lorsqu'elle est causée par un JS tiers. Un autre avantage est qu'il ne nécessite pas de downgrade, ce qui causerait une vulnérabilité (dans toutes les versions de jquery inférieures à 3 !).
La version 3.0 de Jquery comporte des changements radicaux qui suppriment certaines méthodes en raison de conflits. Votre erreur est très probablement due à l'un de ces changements, comme la suppression de l'événement .load().
Plus d'informations dans le Guide de mise à jour de jQuery Core 3.0
Pour remédier à ce problème, vous devez réécrire le code pour le rendre compatible avec Jquery 3.0 ou vous pouvez utiliser l'option Plugin JQuery Migrate qui rétablit les API et les comportements dépréciés et/ou supprimés.
Je suis tombé sur le même message d'erreur après la mise à jour vers la dernière version de JQuery. Donc j'ai mis à jour le fichier jquery, j'ai été travailler sur, comme indiqué dans une précédente réponse, donc il l'a dit .on("load")
au lieu de .load()
.
Ce correctif n'est pas très stable, et, parfois, il ne fonctionne pas pour moi. Par conséquent, pour résoudre ce problème, vous devez mettre à jour votre code à partir de:
.load();
pour
.trigger("load");
J'ai eu ce correctif à partir de la source suivante: https://github.com/stevenwanderski/bxslider-4/pull/1024
La réponse de @choz est la bonne. Si vous avez beaucoup d'utilisations et que vous voulez vous assurer que cela fonctionne partout sans changements, vous pouvez ajouter ces petits snippets de migration :
/* Migration jQuery from 1.8 to 3.x */
jQuery.fn.load = function (callback) {
var el = $(this);
el.on('load', callback);
return el;
};
Dans ce cas, vous n'avez pas obtenu d'erreurs sur d'autres nœuds, par exemple sur $image
comme dans la réponse de @Korsmakolnikov !
const $image = $('img.image').load(function() {
$(this).doSomething();
});
$image.doSomethingElseWithTheImage();
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Vérifiez ceci, cela résoudra peut-être votre problème. Erreur de type non résolue : Undefined n'est pas une fonction sur indexOf
4 votes
C'est la nouvelle version de jQuery qui provoque l'erreur. L'ancienne version est correcte.
0 votes
C'est aussi le cas en ce moment :0
0 votes
Veuillez indiquer la réponse. Je pense qu'il est évident que nous en avons une