为了账号安全,请及时绑定邮箱和手机立即绑定

为什么JS必须全部写在window.onload中,页面才能实现?

<!doctype html>

<html>

<head>

  <meta charset="UTF-8">

    <title>Document</title>

<style>

*{margin:0;padding:0;}

     .head{font-size:12px;padding:6px 0 0 10px;}

     #login_box{width:300px;height:150px;background:#eee;

     border:1px solid #ccc;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;display:none;}

     #login_box p{height:20px;border-bottom:1px solid #ccc;font-size:12px;padding:6px 0 0 5px;font-weight:bold;}

     #close{width:14px;height:14px;position:absolute;right:4px;top:6px;cursor:pointer;}

</style>

<script>

      window.onload = function(){

       var login_btn=document.getElementById('login'),

           login_box=document.getElementById('login_box'),

           close=document.getElementById('close');

             

       // 封装添加事件监听程序

        var eventUtil = {

          addHandler:function(ele,type,hander) {

           // 执行代码  

           if (ele.addEventListener) {

               ele.addEventListener(type,hander,false);

           }

           else if (ele.attachEvent) {

             ele.attachEvent("on"+type,hander);    

           }

           else {

               ele["on"+type] = hander;

           }

       }

        }

     

  

        // 显示登录层函数

       function showLogin() {

       // 执行代码

              login_box.style.display = "block";

        }

        // 隐藏登录层函数

         function hideLogin() {

          // 执行代码

          login_box.style.display = "none";

        }

     

        //点击登录按钮显示登录层 

        // 执行代码

        eventUtil.addHandler(login_btn,"click",showLogin);

        eventUtil.addHandler(close,"click",hideLogin);

        //点击关闭按钮隐藏登录层

        // 执行代码

       }

</script>

</head>

<body>

<div>亲,您好!<input type="button" value="登 录" id="login"></div>

<div id="login_box">

<p>用户登录</p><span id="close">X</span>

        <div style="display:table;margin:20px ;">

        <div style="display:table-row">

        <span style="display:table-cell;text-align:right;vertical-align:middle;">用户名:</span><span style="display:table-cell;"><input type="text" placeholder="请输入用户名" style="height:50px;"></span>

        </div>

        <div style="display:table-row">

        <span style="display:table-cell;text-align:right;vertical-align:middle;">密码:</span><span style="display:table-cell"><input type="text" placeholder="请输入密码"></span>

        </div>

        </div>

</div>

</body>

</html>


望大神指点,谢谢!!

正在回答

3 回答

好好学学加载机制呀....window.onload的意思是等页面完全加载完毕的意思,如果你不写这句的话,你的页面DOM节点还没有加载上,你的js就已经在运行了,可能就找不到节点,还有现在一般都不用window.onload这个方法,你可以查一查。

0 回复 有任何疑惑可以回复我~
#1

自律让人自由4008941 提问者

非常感谢!
2016-11-25 回复 有任何疑惑可以回复我~

谁说的必须要写window.onload.这样写只是方便加载页面的时候就会执行,你还有给按钮添加点击事件等方法啊

0 回复 有任何疑惑可以回复我~
#1

自律让人自由4008941 提问者

这种方式写得话,我如果不全部写在window.onload里就报错eventUtil无效
2016-11-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么JS必须全部写在window.onload中,页面才能实现?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信