前端之BOM和DOM

前端之BOM和DOM

BOM和DOM的概念

​ 我们在之前已经学习了JavaScript的基础语法,但实际上这些语法我们只是在本机上自己与自己做操作,并没有和浏览器进行互动,所以仅仅掌握JavaScript是不够的,我们还需要一些能把JavaScript和网页做交互的工具,也就是BOM和DOM.

​ BOM(Browser Object Model)是浏览器对象模型,它的主要功能就是可以与浏览器进行对话,在浏览器页面初始化的时候,会在内存创建一个全局对象,用来描述当前窗口的属性和状态,这个全局对象被称为浏览器对象模型.BOM相对于DOM的来说,其缺点是会有兼容性的问题,因为每个浏览器都有自己的BOM实现方法,把自己写的BOM放进去就很有可能会出现兼容性问题,但是DOM的标准是全世界范围都固定的,所以不会有兼容性的问题.

​ DOM(Document Object Model)是指文档对象模型,通过它,可以访问html文档的所有的元素,进而去操作其内容和格式.

BOM

核心对象window

​ BOM的核心就是window对象,同时window对象也是BOM的顶级对象,所有的浏览器都支持window对象,这是毫无疑问的.

​ JavaScript的所有全局对象,方法,和全局变量都会被自动归为window对象的方法和属性,我们在调用这些方法的时候就可以省略window关键字,直接写即可,同时DOM也是window对象的属性.

window.documents.getElementsByClassName("teacher");
documents.getElementsByClassName("teacher");
# 上面两个语句的效果是一样的,完全一样

​ 另外,window对象可以直接返回当前浏览器的高度和宽度,还可以打开新窗口和关闭当前窗口

window.innerHeight
window.innerWidth

# 打开窗口
window.open(url,target,specs,replace)
url 是要打开窗口的路径
target 是打开方法
specs 是规定新窗口的样式
replace 是否在历史列表中替代当前页面

# 关闭当前窗口
window.close()

document

​ document是整个HTML文档的根节点,即我们可以通过这个对象来点出来页面里的所有内容,另外document还用于描述DOM树的状态和属性,并提供了很多操作DOM的API,

frames

​ frames通常用来指HTML的子框架,也就是说可以在浏览器里面嵌入的另一个窗口.

history

window.history就是浏览器的历史记录, 这些历史记录是以栈的形式来保存的,就是说页面前进就会入栈,记录历史记录,而页面返回则会出栈.

​ history的常用方法

history.back() 		# 跳转到历史记录的前一个链接
history.forward()	# 跳转到历史记录的后一个链接

location

​ location可以让用户获取当前页面地址以及可以重定向到一个新的页面.

location的常用属性为:

location.href # 返回当前页面的地址
location.hostname # 返回当前页面的域名
location.pathname # 返回当前页面的路径和文件名
location.protocol # 返回网页使用的协议
location.port # 返回当前页面的端口

​ navigator可以用来描述浏览器本身的信息,包括浏览器的名称,版本等等,但并非那么的准确

navigator.appName 		# 返回浏览器的名称
navigator.appCodeName 	# 返回当前浏览器的内核

screen

​ screen可以显示用户屏幕的亮度,宽高等.

screen.width / screen.height # 显示屏的宽,高

弹出框

JavaScript中的弹出框只有三种,即警告框,确认框,提示框

# 警告框
alert("you see?")

# 确认框
confirm("你确定吗?")

# 提示框
prompt("请输入你的答案")

计时事件

JavaScript里面的计时事件,简单来说就是我们可以在一定时间之后再执行代码,而不是写完立即执行.

# setTimeout,可以设置在多长时间之后执行第一个参数的语句,注意后面的参数单位是毫秒
var t = setTimeout("Js语句",毫秒)

# clearTimeout() 可以取消setTimeout的设置
clearTimeout(t)

# setInterval(),可以设定多长时间的一个周期,来执行第一个参数的js语句,会不停的执行,直到clearInterval被调用或者窗口被关闭
var timer = setInterval("js语句",时间间隔)

# clearInterval(),取消setInterval设置的执行周期
clearInterval(timer)

DOM

​ DOM是一套对文档的内容进行抽象和概念化的方法,在网页被加载的时候就会被创建.

  • 在正式学习DOM之前我们要明白一个事情,对于涉及到DOM操作的JS代码,里面如果涉及到变量,一定要把这些代码的script写在定义变量的后面,否则会报找不到变量的错误.

查找标签

# 直接查找
document.getElementById 			# 可以根据ID获取一个标签
document.getElementsByClassName 	# 根据class属性获取标签
document.getElementsByTagName 		# 根据标签名获取标签合集

# 间接查找
children 			# 可以查看所有的子标签
firstElementChild 	# 第一个子标签元素
lastElementChild 	# 最后一个子标签元素

节点操作

# 对节点的操作无非就是创建,添加,删除,替换等.

# 创建节点
createElement(标签名)

# 追加节点
node.appendChild(newnode); 			# 在最后添加节点
node.insertBefore(newcode,某个节点); # 把增加的节点放在某个节点的前面

# 删除节点
node.removeChild(要删除的节点);

# 替换节点
node.replaceChild(新节点,要替换掉的节点)

class的操作

className 				# 获取所有的样式类名
classList.remove(cls) 	# 删除指定的类
classList.add(cls) 		# 添加指定的类
classList.contains(cls) # 判定某个类是否存在,返回值为布尔值
classList.toggle(cls)	# 如果存在cls类就删除,不存在就添加cls类

事件

​ HTML有一种特性,就是可以让HTML中的事件来触发浏览器中的动作,具体例子就是用户在点击某个HTML元素的时候会启动一段js代码,下列属性就是可以插入HTML标签来定义事件动作.

onclick 	# 单击某个对象可以调用的事件
ondblclick 	# 双击某个对象可以调用的事件

onfocus 	# 元素获得焦点
onblur		# 元素失去焦点

onkeydown 	# 用于检测键盘某个键被按下
onkeypress 	# 用于检测键盘某个键按下并松开
onkeyup		# 用于检测键盘某个按键松开

onload 		# 等待一张页面或一幅图完成加载之后,执行下面代码

onmousedown # 鼠标按钮被按下
onmousemove # 鼠标被移动
onmouseout 	# 鼠标从某元素移开
onmouseover	# 鼠标移到某元素之上

onselect 	# 在文本框里面的文本被选中的时候会发生的事件

onsubmit	# 确认按钮被点击时候触发,使用的对象是form
posted @ 2019-10-15 15:44  Xu67  阅读(209)  评论(0编辑  收藏  举报