1.BOM的概述 browser object modal :浏览器对象模型。 浏览器对象:window对象。 Window 对象会在 <body> 或 <frameset> 每次出现时被自动创建。 Window 顶级父类--> 子:history location Navigator screen 2. window的属性 innerHeight: 文档显示区的高度,不包括工具栏 菜单栏等高度 innerWidth: IE不支持 不包括滚动条 通用写法:var x =window.document.body.clientWidth //文档显示区的宽度 var y = document.body.clientHeight//文档显示区的高度 outerheight: var x =window.document.body.outerheight; outer var y =window.document.body.outerwidth; self :等同于window对象 parent:是打开窗口的父窗口对象,重要 opener:是打开窗口的父窗口对象,重要 2种情况下使用opener: 1.使用winodw.open()方法打开的页面 2.超链(里面的target属性要设置成_blank) 2种情况下使用parent: 1.iframe 框架 2.frame 框架 frames[]: 数组类型,代表子窗口的window对象的集合,可以通过frames[索引]拿到子窗口的window对象。 示例:父子窗口相互传参. open方法,是打开一个页面. 对话框: 1)消息框 alert() ; 2)确认框 confirm() ; 3)输入框 prompt() ; (了解) 定时器: setTimeout ,setInterval 定时器: 1.setTimeout() :只会调用1次 2.setInterval() :每隔一段时间调用1次 3. history对象 a. forward()前进 b. back() 后退 c. go(n) 正数是前进,负数是后退. 4. location对象。 1.href 属性: 是指要连接到其他的URL 写法一、window.location.href='demo_window对象的close方法.html' ; 写法二、window.location='demo_window对象的close方法.html' ; 2.reload方法: 刷新 写法: window.location.reload() ; 5.常用事件 * 事件(掌握,明白每个事件发生的时机) 鼠标移动事件 * onmousemove(event) : 鼠标移动事件 event是事件对象。名字固定 * onmouseover : 鼠标悬停事件 鼠标悬停事件: 当鼠标移动到某个控件上面的时候发生 this: 把this写在那个标签里面就代表那个标签对象 this.style.backgroundColor : 当调用样式表中的属性的时候,如果属性中间有横杠,则应去掉. 示例: 当鼠标移动到p标签上的时候,p标签改变样式 (参见demo01_鼠标悬停事件.html) * onmouseout : 鼠标移出事件 鼠标移开事件: 当鼠标从控件上移开的时候 示例参见(demo_02_鼠标移开事件.html ; * 鼠标点击事件 onclick : 当鼠标单击某个控件时发生 示例: 当单击按钮时,在<p>中显示字符串 "冠希哥来了" 参见(demo03_鼠标单击事件.html) <script> function init(){ btn1.onclick=function (){//给btn1按钮注册一个点击事件 var img = document.getElementById("img"); img.style.display="none"; this.disabled="true";//将按钮设置为不可点击,灰色,this代表btn1 } btn2.onclick=function (){ var img = document.getElementById("img"); img.style.display="block";//调用css的样式 用style 或直接用属性 var btn1 = document.getElementById("btn1"); btn1.removeAttribute("disabled");//删除btn1的属性 } function fun(obj){obj.value ="新浪";} function add(){ var add = document.getElementById("add"); //调用html,用innerHtml add.innerHTML="<img src='images/img1.jpg' width='200' height='200'>"; } function remove(){ var btn3 = document.getElementById("btn3"); btn3.removeAttribute("onclick"); } } </script> </head> <body onload="init()"> <img src="images/img1.jpg" id="img"> <input type="button" id="btn1" value="隐藏图片"> <input type="button" id="btn2" value="显示图片"> <input type="button" id="btn3" value="搜狐" onclick="fun(this)">//this==<input> <input type="button" id="btn4" value="添加一副图片" onclick="add()"> <input type="button" id="btn5" value="去除搜狐按钮的点击事件" onclick="remove()"> <p id="add"></p> </body> * 加载与卸载事件 onload ,onunload 加载事件(onload) : 在整个页面的元素加载完毕之后发生,body加载完毕之后调用 <body onload="fun(),fun1(),fun3()"></body> onload可以调用多个函数 只能写在 img ,layer 和body中; 卸载事件(onunload) : 用于页面关闭时发送某些信息给服务器 注意: onload和onunload事件必须写在body或者图片标签里面 示例参见(demo04_加载卸载事件.html) * 聚焦与离焦事件 onfocus, onblur 聚焦事件:是在控件获得焦点的时候发生 离焦事件:是在控件失去焦点的时候发生 示例: 文本框获得焦点的时候改变样式,失去焦点时变回原样(参见demo05_聚焦离焦事件.html) <script> function fun(obj){ obj.style.border="1px solid red"; obj.style.background="black"; obj.style.color="white"; } function fun1(obj){ if(obj.value==""){ alert("内容不得为空"); obj.focus();//让焦点回到input框中 } } </script> </head> <body> <input type="text" name="" value="" onfocus="fun(this)" onblur="fun1(this)"><br><br><br> <input type="text" > </body> * 键盘事件 onkeypress,onkeyup,onkeydown onkeypress: 按下键盘按键并松开 onkeydown : 按下按键发生 onkeyup: 松开按键 示例参见(demo06_键盘事件.html`) <script> function fun(obj,e){ obj.value= e.keyCode;//65A 97a 拿到按键的asc码 } </script> </head> <body> //event对象 能拿到事件的状态等信息 <input type="text" name="" onkeypress="fun(this,event)" onkeydown="" onkeyup=""> </body> * 提交与重置事件 :提交 是把前台的数据提交到服务器 onsubmit,onreset 提交事件: 是在点击提交按钮后发生。(必须写在form表单中) 提交流程:点击submit按钮-->check(this)方法,如果返回为true,提交表单数据到服务器,跳转页面,反之光标重回到输入框且弹出提示... 重置事件: 是在点重置交按钮后发生。 示例: 提交表单中的数据(检查):如果是陈冠希:通过,否则不能提交数据(参见demo07_提交重置事件.html) <script> function check(form){ var txt= form.username.value; if(txt ==""){ document.getElementById("sname").innerHTML="<font color='red'>*名字不能为空</font>";//只有input标签才有value,其他用innerHtml form.username.focus();//光标重新回到输入框 return false;//必须要有boolean返回值 } return true; } function funreset(form){ var txt= form.username.value; if(form.username.value !=""){//有数据才清空 return true; } return false; } </script> <body> <form action="ting.html" method="post" onsubmit="return check(this)" onreset="funreset(this);"> <input type="text" name="username" value=""><span id="sname"></span> <input type="submit" value="提交按钮"> <input type="reset" value="重置按钮"> </form> </body> * 选择与改变事件 onselect: onchange: onselect: 只能用于输入框. 当选择输入框中的文本时发生 onchange: 用于select和文本框. 对于下拉框是在选项发生变化的时候发生 对于文本框是在文本框的内容发生变化并且失去焦点时发生 示例: 当选择文本框的内容时,弹出文本框的内容 下拉框的selectedIndex属性:代表选中某项的索引
<script> function fun(obj){ alert(obj.value);//输入什么显示什么 } function fun1(value){ alert(value);//传递过来的是value 直接显示 } function fun2(v,index){ alert(v+":"+index);//选中美国,弹出的是usa:1 } </script> </head> <body> <input type="text" name="" onselect="fun(this)" onchange="fun1(this.value)"> <select onchange="fun2(this.value,this.selectedIndex)"> <option value="china">中国</option> <option value="usa">美国</option> <option value="japan">小日本</option> </select> </body>