问答详情
源自:3-3 编程练习

大神帮忙看看,为什么点击页面任何地方都没有弹框出现???错误提示为Cannot set property 'onclick' of null 。这是什么意思??代码该如何改??

<!doctype html>

<html>

    <head>

    <style>

        #a{

            width:200px;

            height:200px;

            background-color:red;

        }

    </style>

    <script>

        var dk=document.getElementById("a");

        dk.onclick=function(e){

            e = e || window.e;

             if(e.stopPropagation){

          e.stopPropagation();

     }else{

          e.cancelBubble=true;

     }

        }

        document.onclick=function(){

            alert('hello');

        }

    </script>

    </head>

    <body>

        <div id="a">

        </div>

    </body>

</html>


提问者:周耀勇 2016-08-16 01:15

个回答

  • 适距
    2016-08-16 08:50:55
    已采纳

    <!doctype html>

    <html>


    <head>

        <style>

        #a {

            width: 200px;

            height: 200px;

            background-color: red;

        }

        </style>

        <script>

     window.onload =function  () {

        // body...  

      var dk = document.getElementById("a");

        dk.onclick = function(e) {

          alert("message")

            e = e || window.e;

            if (e.stopPropagation) {

                e.stopPropagation();

            } else {

                e.cancelBubble = true;

            }

        }

        document.onclick = function() {

            alert('hello');

        }

         } 

        </script>

    </head>


    <body>

        <div id="a">

        </div>

    </body>


    </html>

    代码是按顺序执行,你获取id =a的元素时,dom未加载完成,所以是null,脚本放在最下边也可以