加载中

JS-BOM

BOM介绍

BOM即浏览器对象模型

BOM
window
DOM
location
history
navigator
  • 上图可以看出DOM其实是包含在BOM里的
  • window是BOM的顶级对象,所以使用window的方法时可以省略window(例:window.alert() <==> alert() )
  • 全局变量,自定义函数等也是window对象的

window常用方法/属性

对话框

alert(仅提示)

confirm(带确认取消按钮)

var flag=confirm("确认跳转?");	//返回true/false

prompt(输入框)

var flag=prompt("提示文字:","文本框预输入值");	//参数2可省

prompt例图

选择确定则返回文本框值,否则返回null

打开/关闭窗口

open

open方法直接打开窗口,大部分浏览器出于安全考虑都会进行拦截;所以应放在例如单击事件等用户主动事件中,打开的窗口不会被拦截

格式:

window.open(url,target,param)

url:要打开的url

  • 若为空字符串则打开空白窗口
  • 可以直接写相对路径的网页文件
  • 例如www.baidu.com要加http://,否则会被当做相对路径文件

target:打开方式,有3种

解释
_blank(默认)新窗口打开
_self替换当前页面
_parent替换父框架

target可替换为name属性,但两者只能出现一个,例子:
open('','newWin',''); //此时 新窗口.name="nueWin"

param:新窗口参数

param是一个字符串,用=号赋值,以,分割,例:width=200,height=100

常用参数

类型解释
width/heightnumber宽/高(px)(不同浏览器都不一样)
top/leftnumber顶边距/左边距(px)(不同浏览器都不一样)

其他参数(不同浏览器都不一样,有的还忽略某个属性)

类型解释
locationyes/no 1/0显示地址栏
fullscreenyes/no 1/0真全屏显示,不是F11那种(仅IE有)
resizableyes/no 1/0可调整大小,IE默认no
scrollbarsyes/no 1/0滚动条
statusyes/no 1/0状态栏
toolbaryes/no 1/0工具栏

不同浏览器的规则都不一样,所以最好不用这里的参数设置

返回值:新打开窗口的BOM,可以用其操作子窗口

close

var childWin=window.open("","","width=100,height=100");	//打开子窗口
childWin.close();	//关闭子窗口

//检测窗口是否关闭
console.log(childWin.closed());	//true

window.close();		//关闭自己

父窗口(opener)

var childWin=window.open("","","width=100,height=100");
childWin.document.write("this is childWin");
childWin.opener.document.write("this is parentWin,this msg is write by childWin");

在这里插入图片描述
通过子窗口操作到了父窗口

打印页面(print)

window.print();		//一般会弹出打印页面

窗口位置大小操作

方法解释
moveTo(x,y)移动窗口(xy对应窗口左上角)
moveBy(x,y)相对移动窗口(可以是负数)
resizeTo(width,height)调整大小
resizeBy(width,height)相对调整大小(可以是负数)
scrollTo(x,y)滚动页面(xy对应页面左上角),scrollTo(0)表示xy都回到
scrollBy(x,y)相对滚动页面(可以是负数)

获取屏幕分辨率

window.screen.width 和 window.screen.height

注意获取的是浏览器缩放后的屏幕分辨率,例如1920x1080高分屏的浏览器DPI设置为125%后为1536x864

window常用对象

location

window.location对象指浏览器的地址栏

属性

属性解释
href(Hypertext Reference 超文本引用)指url地址,直接赋值相当于跳转 例:location.href="http://www.baidu.com",直接赋值给location效果和location.href相同
hash#后面的内容(包含#),例:http:\\abc.com#1的hash=#1
host主机名+端口,例http://localhost:8080/index.html的host=localhost:8080
hostname主机名
pathname路径名,例http://localhost:8080/index.html的pathname=/index.html
protocol协议类型(包含:),一般有 http:https:file:
search查询字符串,?后的参数(含?=&)

http:protocol//localhosthostname:8080host/index.htmlpathname?name=yjl&age=20search

方法

方法解释
reload()刷新,reload方法会执行assign
assign(url)改变浏览器地址,记录历史,可以后退
replace(url)替换浏览器地址,不记历史,不可后退
  • reload()和location.assign(location.href)都可以实现刷新
  • replace()是新url的页面替换旧页面,和assign不同,不是转到新url同时保留旧页面
  • 假设当前页面可以接收post请求,使用assign刷新时因为没删除旧页面,所以仍会再次提交旧页面的post参数,若不想再次提交可以使用replace,语句:lcoation.replace(loaction.href)

navigator

navigator包含有关浏览器的信息

属性解释
onLine是否离线,在线操作的应用可以随时检测网络
cookieEnabled浏览器是否启用cookie
userAgent用户代理

userAgent解释:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763

  • <引擎>/<版本> <(信息)> …
  • 几乎所有浏览器UA信息前都是Mozilla(网景公司产品),是因为UA是网景提出的,且当时Mozilla是最好的引擎,开发者读取到是Mozilla的话会加一些特殊功能,而其他浏览器无法获取,所以争相说自己兼容Mozilla,以至现在Mozilla都没了还加,导致UA出现的真实意图事与愿违.其他的Chrome,Safari等也是渲染引擎,表示该浏览器支持这些引擎.
  • 每个浏览器的UA内容都不太相同,但格式都一样

history

操作浏览历史

方法解释
back()后退
forward()前进
go(number)跳转页面个数,go(-1):后退、go(0):刷新、go(1):前进、go(2):前进2个 …
posted @ 2019-07-21 22:23  jialeYang  阅读(45)  评论(0编辑  收藏  举报