BOM (浏览器对象模型(BrowserObjectModel))
BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
主要功能
1. 弹出新浏览器窗口的能力;
2. 移动、关闭和更改浏览器窗口大小的能力;
3. 可提供WEB浏览器详细信息的导航对象;
4.可提供浏览器载入页面详细信息的本地对象;
5 .可提供用户屏幕分辨率详细信息的屏幕对象;
6. 支持Cookies;
7. Internet Explorer对BOM进行扩展以包括ActiveX对象类,可以通过JavaScript来实现ActiveX对象。
交互框
警告框 ------Window.alert()
确认框 ------Window.confirm();
询问框 ----- Window.prompt();
窗口调用
open(url,name,params)--------Params:height=100,width=400,top=0,left=0,toolbar=no,menubar =no,scrollbars=no, resizable=no,location=no, status=no
close()
子窗口调用父窗口
opener.父窗口方法、属性
Window.opener.farther_method()
定时控制
setTimeout()--------- Specifies a delay for calling a function or evaluating an expression.
setInterval()----------- Calls a function or evaluates an expression every time the specified interval elapses.
clearTimeout()–-------Clears a timeout that was set with the setTimeout method.
clearInterval()–--------Clears a delay that was set with the setInterval method.
screen&location
screen
– window.screen.width分辨率宽
– window.screen.height分辨率高
location
– window.location.href=”http://www.baidu.com”
– window.reload(); //刷新
– window.location.href=window.location.href;//刷新
history&navigator
history
window.history.forward()
window.history.back()
window.history.go(num)
navigator
window.navigator.userAgent //获取浏览器信息
DOM模型(Document Object Model):文档对象模型,它定义了操作文档对象的接口。
结点
结点的概念
------在DOM模型中,整个文档就是由层次不同的多个节点 组成,可以说结点代表了全部内容。
结点的类
----------文本节点和属性结点都看作元素结点的子结点
----------我们一般所说的结点指的就是元素结点。
元素结点的引用
1.获取元素结点
1)直接获取
① document.getElementById()
② document.getElementsByName()
③ document.getElementsByTagName()
2)间接获取
父子关系 firstChild lastChild childNodes
子父关系 parentNode
兄弟关系 nextSibling previousSibling
2.操作属性结点
1)通过对象“.”属性,来操作属性 优:可以动态获取用户修改的属性值 缺:不能获取自定义属性的值
2)getAttribute("key") setAttribute("key","value") removeAttribute("key")
优:可以获取自定义属性的值
缺:不能动态获取用户修改的属性值
3.处理文本结点
1) 通过对象.innerText 获取标签内部的文本信息
2) 通过对象.innerHTML 获取标签内部的HTML代码
4.动态改变DOM结构
1)创建一个结点对象 document.createElement("标签名")
2)(父结点)追加子结点对象 fatherNode.appendChild(子结点对象)
3)(父结点)在指定结点前添加子结点 fatherNode.insertBefore(新结点对象,参考结点对象) 4)(父结点)替换旧的子结点对象 fatherNode.replaceChild(新结点对象,旧结点对象)
5)(父结点)删除旧子结点对象 fahterNode.removeChild(旧结点对象)
5.动态改变元素的css样式
1)我们通过对象.style属性操作对象的css样式:样式名称中有“-”将“-”去掉,并将“-”后一个字母改为大写来作为样式的新名称
2)我们希望通过class为一个对象添加一个class样式,添加属性名是className,而并非class(class是js的关键字,不能作为属性名存在)