jQuery url.indexOf不是一个函数

时间:2017-09-22 15:36:58

标签: javascript jquery webpack-2

我刚刚使用

安装了jQuery
npm 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

3 个答案:

答案 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;

简而言之,您正试图访问indexOfnull上的undefined,这会引发该错误。所以我要做的是检查url是否存在,然后访问indexOf,否则设置为-1,如果url不包含空字符串,则indexOf将返回。