js&&BOM浏览器对象模型

window对象

  • 全局:
    var a;//全局变量,会被添加到window对象中
    window.b;
    (1)delete可以删除b,但不能删除a(a的[[configurable]]是false);
    (2)尝试访问未声明的变量会报错:
    var x = c;//c是未声明的变量,报错
    var x = window.c;//相当于是一次查询变量的行为,不会报错
  • 窗口关系和框架
    window对象指的是每个框架的特定全局实例
    top指向浏览器窗口,也就是最外层框架
    parent指向当前框架的直接上层框架
    在最外层,可以使用top.frames[0]或者top.frames[“name”]或者frames[0]、frames[“name”]来访问里面的框架,注意,name属性:除非最外层是window.open()打开,否则不会有name属性
    使用window.parent.parent.frames[0]等等,可以将不同层次的window对象连缀起来
  • 窗口位置
    sceenTop、screenLeft用来确定窗口相对于屏幕左上角的距离
    有些浏览器会使用screenX和SceenY来确定,跨浏览器时无法得到精确的距离
    moveTo()和moveBy()可以将一个窗口精确地移动到一个位置,一个是移动到,一个是移动的距离,接收两个参数
  • 窗口大小
    window.innerWidth
    window.innerHeight可视窗口大小
    IE9- 需要使用DOM获取,根据标准Or混杂模式,使用documentElement或者是body的clientWidth
    resizeTo(100, 100);//重新调整窗口大小,调整到100*100
    resizeBy(100,50);//调整到200*150(100+100, 100+50)
  • 导航和打开窗口
    window.open():可以导航到新的url,也可以打开新的窗口
    四个参数:
    window.open(url, target, description, boolean);
    url:导航至url(如果没有,则打开新窗口)
    target:导航至target指定的位置,这是window.name的值,如果这个值在已有窗口或者框架中存在,就在指定位置打开窗口;如果不存在,就打开新窗口,新窗口的window.name 就是这个值。如果这个值为空,则新打开的窗口的window.name就是空
    description: 对于新窗口的特性的描述,有宽高、位置、是否允许拖拽等等各类信息,若为空,则按照默认属性设置新窗口
    boolean:表示新窗口是否取代历史记录中当前加载页面
    window.open()可以返回对新窗口的引用,通过close()可以关闭新窗口
  • 间隔调用和超时调用
    var id= setTimeout();
    clearTimeout(id);//可以取消这个超时调用
    注意:超时调用在全局作用域中执行,里面的this对象指向的是window
    var id = setInterval();
    clearInterval(id);
    一般使用setTimeout来模拟setInterval,优势:防止丢间隔、保证时间间隔
  • 系统对话框
    alert(str):弹出str+确认按钮
    confirm(str);弹出str+确认和取消按钮,返回值:用户点击确认按钮,返回true,否则返回false
    prompt(str,str1):弹出str和一个输入框(默认值是str1)+确认和取消按钮,返回用户输入的值,如果用户点击取消或者叉号,返回null
    window.print();弹出当前页面的打印导航

location对象

location保存着当前文档的信息,window.location 和 document.location指向同一个对象
在这里插入图片描述

  • 查询字符串参数
function query(str) {
	let qs = (str.length > 0) ? str.subString(1) : "" ;
	let arr = (qs.length > 0) ? qs.split("&") : [] ;
	let len = arr.length;
	let args = {};
	for(var i=0;i<len;i++) {
		var items = arr[i].split("=");
		args[items[0]] = items[1] ;
	}
	return args;
}
  • 位置操作
    (1)location.assign(url)在当前页面打开新的页面,保留后退按钮(历史记录中有原有网址)(window.location、location.href都是调用的这个方法)
    除此之外,改变location的hash、search、port、hostname、pathname也可以改变当前加载的页面
    (2)location.replace(url)不保留当前加载的页面,加载新页面后,无法后退到原来的页面
    (3)location.reload(boolean)重新加载当前页面,当参数为true时,表示从服务器重新加载。否则可能从浏览器缓存中加载

navigator对象

客户端浏览器相关信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

screen

这里是客户端显示器相关的信息
在这里插入图片描述
在这里插入图片描述

history对象

当页面的url发生变化时,就会生成一个条历史记录,history对象记录了这些历史记录。使用history.go()函数,可以跳转到指定页面
history.go(1);前进一页
history.go(2);前进两页
history.go(-1);后退一页
history.go(“www.baidu.com”);跳到最近的百度页面
简写:history.back()和history.forward();
history.length如果等于0,那么此页面就是用户打开的第一个页面
当我们需要自定义前进或者后退时,以及判断是否是用户打开的第一个页面,那么就必须使用history

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值