先click,再使用load()判断iframe是否加载完成,为什么失效了,但是直接使用load(),为什么就可以成功判断?

新手上路,请多包涵

请看js里面的,为什么第一种就失效了,第二种就成功了?

<!DOCTYPE html>
<html>
    <head>
        <meta content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
        <meta charset="UTF-8" />
        <title></title>
    </head>
    <body>
        <div id="a">判断iframe是否加载完成</div>
        <iframe src="http://www.qq.com/" style="height:500px;width:600px;" id="b"></iframe>
    </body>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
//---------------第一种----------------------
            $("#a").on('click',function(){
                $("#b").load(function(){
                    console.log("完成!--2")
                })
            })

//--------------第二种--------------------
            $("#b").load(function(){
                console.log("完成!--1")
            })
        })

    </script>
</html>
阅读 3.8k
1 个回答

这里的load相当于原生js的onload,是状态监听,你把他放到function里面,点击的时候,iframe可能已经加载完了,所以会一直监听不到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题