问答详情
源自:2-2 DOM0级事件处理程序

为什么DOM0把script移到head里面后, 不弹框了

<title>无标题文档</title>

<script>

var btn=document.getElementById("btn");

btn.onclick=function() { alert("no");}

</script>

</head>

<body>

<input type="button" value="按钮" id="btn">

</body>

</html>

为什么DOM0把script移到head里面后, 不弹框了?  非要移到body里面才可以

<input type="button" value="按钮" id="btn" onclick="showmes()">

再在script里面封装一个函数, 也是用alert, 放head上面, 又可以显示

提问者:rainy_li3676598 2016-10-11 12:28

个回答

  • rainy_li3676598
    2016-10-25 20:39:43

    懂了,因为在加载<script> 的时候,btn还没有在html中创建, 所以抓取不到, 

    需要写成这样, 在网页加载完成以后, 再重新加载一次onload的程序

    <script type="text/javascript" >

    window.onload = function () {

    var btn=document.getElementById("btn");

    btn.onclick=function () {

    alert("OK");

    }

    }

    </script>



  • rainy_li3676598
    2016-10-11 12:30:40

    <title>无标题文档</title>

    </head>

    <body>

    <input type="button" value="按钮" id="btn">

    <script>

    var btn=document.getElementById("btn");

    btn.onclick=function() { alert("no");}

    </script>

    </body>

    或者

    <script>

    function showmes() { alert("no");}

    </script>

    <title>无标题文档</title>

    </head>

    <body>

    <input type="button" value="按钮" id="btn" onclick="showmes()">

    </script>

    </body>

    上面这两个都能正常跳出弹框