对象不支持属性或方法'indexOf'。

10

我正在使用以下代码:

<html>
<head>
    <title></title>
    <script src="jquery-3.2.0.js"></script>

</head>
<body>
    <script type="text/javascript">
        $(window).load(function () {
            alert('Window loaded');
        });

        $(document).ready(function () {
            alert('DOM Loaded and ready');
        });
    </script>
</body>
</html>

这很简单,但我却遇到了错误。

 "Object doesn't support property or method 'indexOf'".

我正在使用Internet Explorer

这是什么原因呢?


4
你使用的是哪个版本的IE浏览器?因为IE<9版本不支持indexOf方法,可以尝试使用inArray方法。 - Carsten Løvbo Andersen
使用 jQuery 1.x 版本来兼容旧版 IE。 - madalinivascu
2个回答

17

load函数已在1.8版本中被弃用并在3.0版本中被删除。请改用on方法。

<html>
<head>
    <title></title>
    <script src="https://code.jquery.com/jquery-3.2.0.min.js"></script>

</head>
<body>
    <script>
        $(window).on("load",function () {
            alert('Window loaded');
        });
    </script>
</body>
</html>

来自https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/

移除了过时的事件别名

.load, .unload和.error自jQuery 1.8起已被弃用。使用.on()注册侦听器。


现在我没有遇到错误了。你说得对,load方法已经被弃用了。 然而,现在出现了一个新的问题,window.on方法在document.ready之前触发。 据说window.ready在window.load之前触发,因为window.load会等待所有图片等加载完成,而document.ready函数会在DOM准备就绪时立即触发。 但是现在这个说法不再成立。 有什么建议吗? - Abbas

0

   $(window).load(function () {
            alert('Window loaded');
        });

        $(document).ready(function () {
            alert('DOM Loaded and ready');
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


     


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接