jQuery 3.0的url.indexOf错误
一旦它被更新到v3.0.0
我正在从jQuery获得错误。
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
任何想法为什么?
更新所有调用load
函数的代码,
$(window).load(function() { ... });
至
$(window).on('load', function() { ... });
jquery.js:9612 Uncaught TypeError:url.indexOf不是一个函数
这个错误消息来自jQuery.fn.load
函数。
我在应用程序中遇到过同样的问题。 经过一番挖掘,我在jQuery博客中发现了这个声明,
.load,.unload和.error,因为jQuery 1.8 已经不再使用了 。 使用.on()注册侦听器。
我只是简单地改变我的jQuery对象如何调用上面的load
函数。 一切都按预期工作。
Jquery 3.0有一些突破性的变化,由于冲突,删除某些方法。 您的错误很可能是由于这些更改之一,如删除.load()事件。
阅读jQuery Core 3.0升级指南
要解决这个问题,您需要重写代码以与Jquery 3.0兼容,否则您可以使用JQuery Migrate插件来恢复已弃用和/或已删除的API和行为。
更好的方法可能是这样的一个polyfill
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
有了这个,你可以保持原有的代码不变。 如果你使用webpack,一定要使用script-loader。
更新到最新版本的JQuery后,我遇到了同样的错误。 因此,我更新了我正在处理的jquery文件,如之前的回答所述,所以它说.on("load")
而不是.on("load")
.load()
。
这个修复不是很稳定,有时它不适合我。 因此,要解决这个问题,你应该更新你的代码:
.load();
至
.trigger("load");
我从以下来源获得了此修复: https : //github.com/stevenwanderski/bxslider-4/pull/1024