老师,这里为什么要加window.onload

老师,这里为什么要加window.onload

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>onblur和onfocus</title>

    <style type="text/css">

        .red{

     border:1px solid red;

     }

    </style>

</head>

<body>

姓名:<input type="text"> <span></span>

<script type="text/javascript">

   window.onload=function(){

var name=document.getElementsByTagName("input")[0],

   tip=document.getElementsByTagName("span")[0];

name.onfocus=function(){

   tip.innerHTML="请输入您的姓名";

}

name.onblur=function(){

   var content=this.value;

   if(content.length==0){

       tip.innerHTML="用户名不能为空";

       name.className="red";

   }

   else{

       tip.innerHTML="";

       name.className="";

   }

}

}

</script>

</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

因为window下面本身就有name属性,但是如果不添加window.onload,那么window自身的name属性就跟变量名name起了冲突,所以效果就不会实现。当添加了window.onload之后,页面加载完成,读取的就是标签,那么name指向的就是input这个标签,所以不添加window.onload的话,可以把name变量名更改一下,例如:name1,参考下图:

http://img1.sycdn.imooc.com//climg/5c4ebdb900016c6710280710.jpg

山河远阔ZZ 2019-01-28 15:54:58

同学你好,这个是文档就绪函数,window.onload加载事件是在页面内容加载完成之后,立即执行相应的函数,为了防止要对对象进行操作,而对象还未被加载,导致没有操作或者报错现象。

如果帮助到了你,欢迎采纳。

祝学习愉快!

  • 提问者 MissGra #1
    但是我<script>是写在<body>里的,为什么在写<body>里但是没有写window.onload=function没有效果呢
    2019-01-28 16:00:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师