我刚刚使用
安装了jQuerynpm install jquery
使用Webpack合并jquery,在供应商文件中引导后,我一直在跟踪错误
vendor.4b59d15129c2efa4408c.js:9979 Uncaught TypeError: url.indexOf is not a function
at jQuery.fn.init.jQuery.fn.load (vendor.4b59d15129c2efa4408c.js:9979)
at Object.<anonymous> (bundle.7beebbf8c43d73f31563.js:55)
at Object.<anonymous> (bundle.7beebbf8c43d73f31563.js:213)
at __webpack_require__ (vendor.4b59d15129c2efa4408c.js:55)
at Object.<anonymous> (bundle.7beebbf8c43d73f31563.js:12)
at __webpack_require__ (vendor.4b59d15129c2efa4408c.js:55)
at webpackJsonpCallback (vendor.4b59d15129c2efa4408c.js:26)
at bundle.7beebbf8c43d73f31563.js:1
答案 0 :(得分:6)
你的jQuery版本是什么?在版本3上,不推荐使用函数$(window).load()
。使用.load()
,.unload()
或.error()
时,会产生错误。
将这些功能替换为:
<强>旧强>
$(window).load( function () {} )
上面的第3版
$(window).on('load', function () {} )
$(window).on('error', function () {} )
我自己的情况是使用带有Vue.js
的SuperSimpleSlider jQuery插件。我必须用正确的解决方案替换原始文件(插件)。
希望这有帮助!
来源: jqueryhouse.com
答案 1 :(得分:1)
我认为url是一个字符串,所以我推断这是一个问题,当你设置url,尝试找到该行并替换为console.log(url)以查看它是否已定义。
答案 2 :(得分:0)
在您的代码中更改此内容:
off = url.indexOf( " " );
为:
off = url ? url.indexOf( " " ) : -1;
简而言之,您正试图访问indexOf
或null
上的undefined
,这会引发该错误。所以我要做的是检查url是否存在,然后访问indexOf,否则设置为-1,如果url不包含空字符串,则indexOf
将返回。