BOM学习笔记
来源:互联网 发布:安徽中港金融数据服务 编辑:程序博客网 时间:2024/05/22 08:52
BOM的对象包括:window(核心)、location、navigator、screen、history。
window对象
1.作为js访问浏览器窗口的一个接口;
2.Global对象。
作为Global对象时:
在全局作用域中声明的变量、函数都会变成window对象的属性和方法。
定义全局变量与在window对象上直接定义属性的差别:
全局变量不能通过delete操作删除,而直接在window对象上的定义属性可以;
尝试访问未声明的变量会抛错,但通过查询window对象,可以知道某个可能未声明的变量是否存在,例如:
var newValue=oldValue;//会抛错,oldValue未定义。
var newValue=window.oldValue;//newValue为undefined,这是一次属性访问。
作为js访问浏览器窗口的接口:
1.窗口关系及框架:
如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中,通过window.frames[index]访问框架;
top:最顶层框架(浏览器窗口),语法:window.top.frames[index];
parent:当前框架的直接上层框架,语法:window.parent.frames[index];
self:当前框架,语法:window.self==window。
2.窗口位置
screenLeft和screenTop:在IE和Opera中表示屏幕左边和上边到window对象表示的页面可见区的距离,且window.top更为精准;而在Safari和Chrome中表示整个浏览器窗口相对屏幕的坐标值,且window.top会忽略外边距不精准。
screenX和screenY:在FireFox中表示整个窗口相对屏幕的坐标值,且window.top会忽略外边距不精准。
window.moveTo(x,y):窗口移到新的坐标,window.moveBy(x,y):窗口基于原来位置移动x,y。Opera、IE7+禁用,不适用于框架。
3.窗口大小
innerWidth、innerHeight:页面视图区的大小(减去边框宽度);
outerWidth、outerHeight:在IE9+、Safari、FireFox中表示浏览器窗口本身尺寸,在Opera中表示页面视图容器的大小(单个标签页对应的浏览器窗口),在Chrome中与innerWidth、innerHeight相同。
页面视口大小:document.documentElement.clientWidth、document.documentElement.clientHeight。
以上IE6标准模式才有效,如果是混杂模式,则:
document.body.clientWidth和document.body.clientHeight
window.resizeTo(x,y):浏览器新的宽度和高度;
window.resizeBy(x,y):基于原来大小缩放x,y;
以上两个方法:Opera、IE7+禁用,不适用于框架。
3.窗口打开
window.open(url,窗口目标(_blank,_self,_parent,_top),特性字符串,新页面是否取代当前加载页面的布尔值)。
浏览器对open的拦截:
window.onload拦截,点击等事件触发是不会拦截的,自身窗口打开也不会拦截。
location对象
提供了与当前窗口中加载的文档有关的信息。
window.location==document.location
属性:
hash:返回url中hash(#后跟零或多个字符),如果不包含散列,则返回空字符串,如“#contents”;
host:返回服务器名称和端口号(如果有),如“www.baidu.com:8080”;
hostname:返回不带端口号的服务器名称,如“www.baidu.com”;
href:页面完整的url,如“http://www.baidu.com”;
pathname:返回url中的目录和(或)文件名,如“/News/”;
port:url端口号,没有则返回空字符串,如“8080”;
protocol:返回页面使用的协议,如“http”和“https”;
search:返回url的查询字符串(以问号开头),如“?q=js”。
位置操作
location.assign(url):打开新的url并在浏览器的历史记录中生成一条记录,与location.href和window.location一样的效果;
location.repalce(url):打开新的url但无生成历史记录,也无法回退;
location.reload():重新加载当前页面(有可能从缓存中重载);
location.reload(true):必须从服务器重新加载。
navigator对象
其属性通常用来检测显示网页的浏览器类型。
检测插件(非IE):使用plugins数组,每一项包含下列属性:
name:插件的名字;
description:插件的描述;
filename:插件的文件名;
length:插件所处理的MIME类型数量。
screen对象
表明客户端的能力,包括浏览器窗口外部的显示器信息(不同的浏览器会不同)。
history对象
保存着用户上网的历史记录。
go():调用该方法可以在用户的历史记录任意跳转,没有历史记录则什么都不做。
history.go(-1);//后退一页
history.go(1);//前进一页
history.go(2);//前进两页
history.back();//后退一页
history.forward();//前进一页
length属性:历史记录的数量。
- js 学习笔记---BOM
- BOM学习笔记
- BOM学习笔记
- BOM学习笔记----------(一)
- BOM学习笔记----------(二)
- js学习笔记:BOM
- BOM学习笔记
- 学习笔记之:Variant BOM
- Javascript学习笔记之BOM
- day04_HTML BOM学习总结笔记
- JavaScript学习笔记之BOM
- JavaScript学习笔记07 BOM
- 【学习笔记】BOM和UTF编码纪要
- JavaScript学习笔记(三)BOM
- JS学习笔记-BOM之window
- [学习笔记]JavaScript之BOM基础
- JavaScript学习笔记(四):JS浏览器BOM
- Javascript学习笔记6——BOM
- jdk配置(linux)
- 内嵌汇编知识要点
- 最小的K个数
- GDOI2017 检查清单
- iOS 真机 仿真内存告警
- BOM学习笔记
- 哈夫曼树编/译码算法
- 负载均衡(Load Balance)
- XGBoost参数调优完全指南
- 蜂鸣器实验
- 复制文件a的内容到文件b中
- 【linux】ubuntu 安装、配置与启动nfs服务
- Unity 代码混淆CodeGuard
- Win10 编译 chromium 58