一、BOM
1、什么是BOM
Browser Object Model:浏览器对象模型
2、作用:
(1)可以操作浏览器窗口,以及浏览器窗口中的控件(HTML标签):即可以在js程序中操作标签。
(2)可以实现页面和用户之间的动态交互
3、浏览器对象
是一系列浏览器内置对象的统称。
4、浏览器对象模型
内置对象之间按照某种层次组织起来的一种结构。
二、BOM对象
1、window对象:浏览器窗口对象,是BOM的核心。BOM的其他内置对象可以作为window的属性存在。
2、document对象:文档对象,是DOM的核心。
3、location对象:是一个地址对象,可以理解为浏览器的地址栏。
4、history对象:历史对象,用来记录在浏览器中访问记录,可以实现浏览器的前进和后退功能。
5、navigator对象:浏览器对象,又称为浏览器的嗅探器。通过它可以得到浏览器的版本信息、名称、内核等信息。
6、screen对象:屏幕对象,用于获取和屏幕有关的数据。例如屏幕分辨率
注意:后面五个对象可以作为BOM的独立对象,也可以作为window的属性使用。
三、window对象:
可以作为BOM其他对象的父对象
1、全局作用域:在js中定义的变量、函数以及js的内置函数都可以被window对象调用。
2、注意的问题:
(1)window对象的属性和方法的访问:window.属性名 / window.方法名()-----window可以省略。
(2)在全局作用中使用this代表window对象。
(3)若使用window.变量名访问某个未声明的变量时,该变量的值是undefined。
3、window对象的常用方法:
(1)alert('字符串'):弹出消息提示框。
window.alert (window可以省略)
(2)prompt(参数1,参数2):带输入的消息框,
参数1:表示消息提示字符串。
参数2:表示输入框的默认值。
当用户点击确定按钮时,该函数返回用户输入的数据。用户点击取消按钮时,返回null。
(3)confirm(参数):确认消息框,只有两个按钮,一个确认,一个取消。
参数:表示提示字符串。
当用户点击确定按钮时返回true,点击取消时,返回false。
(4)open(url,name,space,replace):打开一个窗口,表示将url地址在name窗口中打开。
url:页面地址,
name:窗口对象
_blank:表示在新窗口中打开页面。
_self:在当前窗口中打开页面。
_parent:表示在父框架中打开页面
space:表示窗口特征(大小、是否有状态栏、是否有工具栏)
replace:默认值为true,表示是否可以替换默认条目。
内联框架:iframe
四、定时器(两种)函数
1、setTimeout(fn,times):间隔times毫秒后执行fn函数。
参数fn:是一个函数
参数times:间隔的时间,单位是毫秒
写法1:
写法2:
函数的返回值是一个定时器对象。
2、清除setTimeout定时器
cleanTimeout(定时器对象(定时事件变量名))
清除按钮要在按下开始按钮的时间间隔内按下,才能清除,否则程序已经程序完毕,在按清除按钮不起作用。
3、setInterval(fn ,times)每隔times毫秒,执行fn函数。
4、clearInterval(定时器对象(定时事件变量名)):清除setInterval定时事件。
五、事件处理
1、事件:用户在页面中进行某种操作。
(1)单击事件名:click --- onlick
(2)页面加载事件:load --- onload
2、事件处理程序:某个事件发生时,执行的程序。
3、docunment对象获取页面元素()的方法:
(1)getElementByld(标签的id属性值):浏览器都支持。
document.getElementByld('id')
(2)querySelected()
a、通过id选择:document.querySelector('#id')
b、通过class选择:document.querySelector('.class')
c、通过标签名选择:document.querySelector('标签名')
4、事件监听:
(1)直接在标签中监听
<button onclick = 'show()'>开始</button>//监听click事件
<body onload = ''>//监听页面的加载事件
(2)在js程序中调用addEVentListener函数来注册
标签对象.addEVentListener('事件名',fn)
参数fn:函数的函数名,是一个函数,表示事件处理程序。注意,不能加括号,有括号表示将函数的返回值传给定时器
六、标签的属性:
1、innerHTML属性:代表标签的html内容(代表起始标签和结束标签之间的内容)
2、input的value属性:获取信息:变量.value。表示input标签里面的值,是input的内置属性。
练习1:
做题思路:
a、定义变量
b、获取标签
c、创建函数
d、注册(监听)事件
练习2:
(1)复选框组:将所有复选框的name属性值定义成一样的
(2)复选框事件:change---当复选框的状态发生改变时触发,change检测复选框是否打钩,click检测是否点击复选框所在的范围。
在页面加载完成后即可显示时钟的解决办法
(1)先调用函数
(2)使用事件:load---当浏览器加载页面时触发该事件,直接在body里面写οnlοad='函数名'。
<body onload = 'showTime()'>表示当页面加载时运行这个函数
事件的注册方式
(1)写在页面的标签中:
<button οnclick="函数名()"></button>
(2)使用addEventListener注册:
对象名.addEventListener('事件名',事件处理函数)
(3)使用函数表达式
let/var 变量名 = function(参数){ }
注册事件的方式:
对象名.onclick = function(参数){ }
3、两种定时器的区别:
setTimeout() 延时时间到了,就去调用这个回调函数,只调用一次就结束了这个定时器。
setInterval ()每隔这个延时时间,就去调用这个回调函数,会调用很多次,重复调用这个函数。