BOM浏览器对象模型
BOM与DOM介绍
-
JavaScript语言由三部分组成
- ECMAJavaScript:定义了js的语法规范
-
Dom:document object model文档对象模型:一个HTML文档中所有的一切都是dom对象
- Dom定义了一套操作HTML文档的API(节点的增删改查)
-
Bom:Brower object model浏览器对象模型 例如:一个浏览器的窗口就是一个window对象
- Bom定义了一套操作浏览器窗口的API
-
Bom主要由五大对象组成:
- window:浏览器核心对象
- location:包含当前页面的URL信息
- history:history对象主要用于记录你当前窗口的历史记录
- navigator:包含当前浏览器的信息,例如用的什么浏览器,操作系统版本等
- screen:获取用户电脑的屏幕分辨率
- 这个一般不用,因为对开发者没啥作用
window对象
- 1.window对象:指的是当前浏览器窗口,它是JS中的顶级对象
- (1).所有的全局变量都是window对象的属性:最顶级的对象
- document对象
- bom对象
- 全局的方法:alert(),setInterval()...........
- (2).只要是window的属性和方法,在使用的时候都可以省略window
- 例如:window.alert() 可以省略window写成alert()
- 例如:window.document 可以省略window写成document
- (3).window对象有一个特殊属性叫做name
- 它永远都是一个字符串,无论给他赋什么值
- (1).所有的全局变量都是window对象的属性:最顶级的对象
- 2.window对象有两个常用的方法:open()与close()
- open():打开一个窗口
- close():关闭一个窗口
` 1.window是顶级对象,所有的全局变量都是window对象的属性 let age = 18; console.log ( window.age );
2.只要是window对象的属性和方法,window可以省略
console.log ( window.document === document );true
3.window有一个特殊的属性叫做name,它永远都是一个字符串
console.log ( window.name );//默认是一个空字符串
window.name = 123456;
console.log ( name );//永远都是一个字符串
就算你重新声明一个变量叫做name,也无法覆盖它
let name = [123];
console.log ( name );
//打开新窗口
document.getElementById('open').onclick = function ( ) {
/**
@param 第一个参数:URL 要打开的窗口网址
@param 第二个参数:类似于a标签的target属性,是替换当前窗口还是新开一个窗口
@param 第三个参数:新窗口特征:大小和位置等(新窗口才有效_blank)
@param 第四个参数:布尔类型 true/false:把新开的窗口加入/不加入到浏览器历史记录
@return 新打开的window对象
*/
let newWindow = window.open('https://www.baidu.com', '_blank', 'top=100,left=100,width=500,height=300', true );
}
//关闭窗口
document.getElementById('close').onclick = function ( ) {
//参数就是你想要关闭的窗口对象,如果不写,默认就是关闭自己
//1.这样写如果关闭的是顶级窗口谷歌和火狐会失效,如果失效可以使用下面这种写法
//window.close( );
/*2.谷歌火狐为了安全起见会拦截我们的代码,js代码只能关闭用js代码打开的界面,
所以我们用js先假装在当前窗口打开自己,然后再关闭自己*/
//这里的url不是空字符串"",而是一个空格字符串 " "
window.open(" ","_self").close();
}
window对象三个事件
window对象有三个事件,记录了浏览器窗口从打开到关闭的三个过程
1.window.onload:界面上所有的内容加载完毕之后才触发这个事件
2.window.onbeforeunload:界面在关闭之前会触发这个事件
3.window.onunload:界面在关闭的那一瞬间会触发这个事件
//由于我们script标签写在了body标签的上面,这行代码会在body内容还未加载的时候就执行
console.log ( document.getElementById ( "p1" ) );//null 此时编译器还未解析p标签
//1.window.onload:界面上所有内容加载完毕后会触发
window.onload = function ( ) {
// 由于编译器是从上往下解析html文件的,如果我们的js代码写在body前面,就有可能无法获取dom对象
console.log ( "当前界面全部加载完毕" );
//window.onload无论写在界面什么位置都是等整个界面加载完毕之后才会执行
console.log ( document.getElementById ( "p1" ) );
}
//2.window.onbeforeunload:界面在关闭前触发
window.onbeforeunload = function ( ) {
/* 1.这个方法主要用于在界面关闭之前保存一些重要数据
2.也可以弹出一个提示框挽留一下用户
*/
//return 内容:浏览器会自动弹出一个挽留窗口
//谷歌和火狐都会拦截这种恶心事,只有IE支持
return '你真的要狠心抛弃我吗';
}
//3 window.onunload:界面关闭时触发
window.onunload = function ( ) {
console.log('界面正在关闭');
}
location对象
-
1.location对象:包含当前页面的URL信息
- url:全球统一资源定位符
- url = 协议名(http) + ip地址(域名) + 端口号 + 资源路径
- 暂时只需要知道location对象包含一个网页的网络url信息即可,具体的含义将在后面阶段学习网络的时候详细讲解
-
2.location对象有三个常用的方法
- (1)打开新网页:location.assign('你要打开的新网页的url')
- (2)替换当前网页:location.replace('要替换的网页url')
- (3) 刷新当前网页: location.reload()
//1.location对象信息查看 console.log ( window.location );//location对象 console.log(location.hash);//资源定位符(锚点定位) console.log(location.host);//主机 host = hostname + port console.log(location.hostname);//主机名(ip地址) console.log(location.port);//端口号 console.log(location.href);//完整的url路径 console.log(location.pathname);//资源路径 console.log(location.protocol);//url的协议 console.log(location.search);//url请求的参数 //2.assign:打开新网页 document.getElementById('assign').onclick = function ( ) { //会留下历史记录(可以回退) window.location.assign('http://www.itheima.com'); //上面这行代码等价于下面这行代码 //window.location.href = 'http://www.itheima.com'; } //3.replace:替换当前网页 document.getElementById('replace').onclick = function ( ) { //不会留下历史记录(不能回退) window.location.replace('http://www.itcast.com'); } //4.刷新当前网页 document.getElementById('reload').onclick = function ( ) { //相当于按了F5刷新当前网页 window.location.reload(); }```
history对象
history对象主要用于记录你当前窗口的历史记录
-
主要作用就是前进和后退网页(相当于浏览器的左上角前进后退按钮功能)
-
history.forward():前进
-
history.back():后退
document.getElementById('forword').onclick = function ( ) { //跳转到当前网页历史记录的下一页,如果没有下一页的历史记录,则不跳转 history.forward()
navigator对象
navigator对象:包含当前浏览器的信息
-
工作中应用场景:用户信息统计(统计我这个网站平台的用户群体分布,什么浏览器,windows什么版本等)
console.log ( navigator );//navigator对象 console.log ( navigator.appVersion );//当前浏览器版本信息 console.log ( navigator.platform );//当前浏览器的硬件平台 console.log ( navigator.userAgent );//当前浏览器信息 //使用场景1:判断当前用户的操作系统是32位还是64位 //谷歌和IE 64位显示WOW64 火狐显示Win64 if(navigator.userAgent.indexOf('WOW64') != -1 || navigator.userAgent.indexOf('Win64') != -1){ console.log ( "64位" ); }else{ console.log ( "32位" ); } //使用场景2:判断用户当前使用哪种浏览器 if(navigator.userAgent.indexOf('Chrome') != -1){ console.log ( "谷歌浏览器" ); }else if(navigator.userAgent.indexOf('Firefox') != -1){ console.log ( "火狐浏览器" ); }else{ console.log ( "IE浏览器" );//也有可能是其他小众浏览器,可以忽略不计 }
总结
-
bom对象
-
1,windows对象
- 指的是当前浏览器窗口,它是JS中的顶级对象
- 1.特点
- (1).所有的全局变量都是window对象的属性:最顶级的对象
- (2).只要是window的属性和方法,在使用的时候都可以省略window
- window.alert() 可以省略window写成alert()
- window.document 可以省略window写成document
- (3).window对象有一个特殊属性叫做name,它永远都是一个字符串,无论给他赋什么值
- 2.两个常用方法
- open():打开一个新窗口
window.open('https://www.baidu.com', '_blank', 'top=100,left=100,width=500,height=300', true );
- close():关闭一个窗口
window.close(要关闭的window对象)- 野路子,自己关闭自己:
window.open(" ","_self").close();
- open():打开一个新窗口
- 3.三个事件
- window.onload:界面上所有的内容加载完毕之后才触发这个事件
- window.onbeforeunload:界面在关闭之前会触发这个事件
- window.onunload:界面在关闭的那一瞬间会触发这个事件
-
2.location对象
-
location对象:包含当前页面的URL信息
- url = 协议名(http) + ip地址(域名) + 端口号 + 资源路径
- 暂时只需要知道location对象包含一个网页的网络url信息即可,具体的含义将在后面阶段学习网络的时候详细讲解
-
一些属性
- location.hash
- 资源定位符(锚点定位)
- location.host
- 主机 host = hostname + port
- location.hostname
- 主机名(ip地址)
- location.port
- 端口号
- location.href
- 完整的url路径
- location.pathname
- 资源路径
- location.protocol
- url的协议
- location.search
- url请求的参数
- location.hash
-
三个常用方法
-
window.location.assign('
');
- 打开新网页,会留下历史记录(可以回退)
-
window.location.replace('
');
- 打开新网页,不会留下历史记录(不能回退)
-
window.location.reload();
- 刷新当前网页,相当于按了F5刷新当前网页
-
-
-
3.history对象
- history对象主要用于记录你当前窗口的历史记录
- 主要作用就是前进和后退网页(相当于浏览器的左上角前进后退按钮功能)
- history.forword():前进
- history.back():后退
-
4.navigator对象
- navigator对象:包含当前浏览器的信息
- 工作中应用场景:用户信息统计(统计我这个网站平台的用户群体分布,什么浏览器,windows什么版本等)
- navigator.appVersion 当前浏览器版本信息
- navigator.platform 当前浏览器的硬件平台
- navigator.userAgent 当前浏览器信息
-
5.screen对象
- 非常的不常用,获取电脑屏幕像素
- console.log(screen.width);//1920 议
- location.search
-
url请求的参数
-
- 非常的不常用,获取电脑屏幕像素