BOM(Browser Object Model)是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的window对象是BOM的顶层对象,window对象包含了三个子对象,分别是history对象、document对象、location对象。document对象包含了link对象、form对象、anchor对象。form对象包含了button对象、checkbox对象、text对象、textarea对象、radio对象、select对象等表单元素对象。BOM模型如图1所示。
BOM模型
location对象表示当前浏览器窗口中显示文档的Web地址,包含文档的完整URL以及URL的各个部分。location是JavaScript实现页面跳转的对象。
任务1:幸运跳转 制作一个幸运测试的网页,使用随机数产生3个等级,不同等级跳转到不同的网页。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>页面跳转</title> </head> <script type="text/javascript"> <!--confirm()函数弹出有确定和取消按钮的对话框,点击确定返回true,点击取消返回false--> if(window.confirm("马上开始测试,准备好了吗?")){ <!-- Math.round()函数用于产生0.0~1.0之间的一个随机数。--> var luckNum = Math.round(Math.random()*3); <!-- 根据不同的随机数,地址跳转向不同的页面--> if(luckNum==1){ location.href = "http://www.baidu.com"; }else if(luckNum==2){ location.href = "https://leetcode-cn.com/"; }else if(luckNum==3){ <!-- reload()重新加载当前页面--> location.reload(); }else{ document.write("页面没出来,重新测试"); } }else{ document.write("刷新页面,可以重新开始测试信用数字"); } </script> <body> </body> </html>
解释:
window
对象的confirm()
函数用于弹出确认对话框,确认对话框中包含提示的文本和确true
值,当点击取消按钮时返回false
值。window
对象的location
属性用于设置页面跳转的URL
。JavaScript可以操作HTML元素,若要操作HTML元素首先要获取到被操作的元素。JavaScript的document对象提供了3种获取HTML元素的方法。
数据类型 | 具体描述 |
---|---|
getElementByld(selector ) | 参数 selector 是ID 选择器,返回对拥有指定id 的第一个对象的引用 |
getElementsByName(selector) | 参数selector 是标签选择器,返回带有指定名称的对象的集合 |
getElementsByTagName(selector) | 参数 selector 是标签选择器,返回带有指定标签名的对象的集合表1获取元素的方法 |
任务2:获取页面元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>使用document方法获取页面元素</title> <style type="text/css"> body{ font-size:14px; line-height:30px; } input{ margin:1px; width:90px; font-size:12px; padding:0; } #node{ width:100px; font-size:24px; font-weight:bold; float:left; } </style> <script type="text/javascript"> function changeLink(){ document.getElementById("node").innerHTML="宋江"; } function all_input(){ var alnput = document.getElementsByTagName("input"); var sStr = ""; for(var i=0;i<alnput.length;i++){ sStr += alnput[i].value+"<br/>"; } document.getElementById("s").innerHTML=sStr; } function s_input(){ var alnput = document.getElementsByName("mingzhu"); var sStr = ""; for(var i=0;i<alnput.length;i++){ if(alnput[i].type=="text"){ sStr += alnput[i].value+"<br/>"; } } document.getElementById("s").innerHTML=sStr; } </script> </head> <body> <div id="node">武松</div> <input name="b1" type="button" value="改变层内容" onclick="changeLink();"> <br/> <input name="mingzhu" type="text" value="三国"/> <input name="mingzhu" type="text" value="水浒传"/> <input name="mingzhu" type="text" value="西游记"/> <br/> <input name="b2" type="button" value="显示所有input内容" onclick="all_input()"/> <input name="b3" type="button" value="显示文本框的内容" onclick="s_input()"/> <p id="s"></p> </body> </html>
解释:
document
对象的getElementByld()
可根据元素的id
获取元素,返回单个对象。document
对象的 getElementsByTagName()
可根据标签名称获取一组元素,返回数组。document
对象的getElementsByName()
可根据元素的name
获取一组元素,返回数组。运行结里