JS中BOM和DOM之间的关系
一、Javascript组成
JavaScript的实现包括以下3个部分:
1、核心(ECMAScript):描述了JS的语法和基本对象。
2、文档对象模型 (DOM):处理网页内容的方法和接口。
3、浏览器对象模型(BOM):与浏览器交互的方法和接口。
BOM和DOM的结构关系示意图
二、BOM(浏览器对象模型)
1、window对象
说明:BOM的核心对象是window,他表示浏览器的一个实例。他既是通过JavaScript访问浏览器窗口的一个接口,又是ECMScript规定的Global对象。
全局作用域
全局变量不能通过delete操作符删除;
window对象上的定义可删除;
BOM(Browser Object Model
)
浏览器对象模型:将浏览器的各个组成部分封装成为对象
location对象
location对象:表示载入窗口的URL,也可用window.location引用它
location.href
//当前载入页面的完整URL,如http://www.somewhere.com/pictures/index.htm
location.portocol
//URL中使用的协议,即双斜杠之前的部分,如http
location.host
//服务器的名字,如www.wrox.com
location.hostname
//通常等于host,有时会省略前面的www
location.port
//URL声明的请求的端口,默认情况下,大多数URL没有端口信息,如8080
location.pathname
//URL中主机名后的部分,如/pictures/index.htm
location.search
//执行GET请求的URL中的问号后的部分,又称查询字符串,如?param=xxxx
location.hash
//如果URL包含#,返回该符号之后的内容,如#anchor1
location.assign(
"http:www.baidu.com"
);
//同location.href,新地址都会被加到浏览器的历史栈中
location.replace(
"http:www.baidu.com"
);
//同assign(),但新地址不会被加到浏览器的历史栈中,不能通过back和forward访问
location.reload(
true
|
false
);
//重新载入当前页面,为false时从浏览器缓存中重载,为true时从服务器端重载,默认为false
navigator对象
navigator`对象:包含大量有关Web浏览器的信息,在检测浏览器及操作系统上非常有用,也可用window.navigator引用它
navigator.appCodeName`
//浏览器代码名的字符串表示
navigator.appName
//官方浏览器名的字符串表示
navigator.appVersion
//浏览器版本信息的字符串表示
navigator.cookieEnabled
//如果启用cookie返回true,否则返回false
navigator.javaEnabled
//如果启用java返回true,否则返回false
navigator.platform
//浏览器所在计算机平台的字符串表示
navigator.plugins
//安装在浏览器中的插件数组
navigator.taintEnabled
//如果启用了数据污点返回true,否则返回false
navigator.userAgent
//用户代理头的字符串表示
screen对象
screen对象:用于获取某些关于用户屏幕的信息,也可用window.screen引用它
screen.width/height
//屏幕的宽度与高度,以像素计
screen.availWidth/availHeight
//窗口可以使用的屏幕的宽度和高度,以像素计
screen.colorDepth
//用户表示颜色的位数,大多数系统采用32位
window.moveTo(0, 0);
window.resizeTo(screen.availWidth, screen.availHeight);
//填充用户的屏幕
History:历史记录对象
back():加载 history 列表中的前一个 URL
forward():加载 history 列表中的下一个 URL
go(参数):加载 history 列表中的某个具体页面(参数:前进(正数)或后退(负数)几个历史记录)
length:返回当前窗口历史列表中的 URL 数量。
三、DOM
Document Object Model 文档对象模型:将标记语言文档的各个组成部分封装为对象。可以使用这些对象对标记语言文档进行CRUD的动态操作。
W3C标准中,DOM被分为三个不同的部分:
1. 核心DOM -针对任何结构化文档的标准模型
2. XML DOM -针对XML文档的标准模型
3. HTML DOM -针对HTML文档的标准模型
Document:文档对象
获取:在HTML DOM模型中可以通过window对象来获取
获取Element对象方法:
getElementById():根据id属性值获取元素对象。
getElementsByTagName():根据标签名称获取元素对象们,返回值是一个数组
getElementsByClassName():根据Class属性值获取元素对象们,返回值是一个数组
getElementsByName():根据name属性值获取元素对象们,返回值是一个数组
创建其他DOM对象方法:
createAttribute(name):创建Attribute属性对象
createComment():创建Comment注释对象
createElement():创建Element元素对象
createTextNode():创建Text文本对象
Element:元素对象
属性:
previousSibling:获取该元素的前一个节点nextSibling:获取该元素的后一个节点innerHTML:可以获取标签内所有的内容,包括标签innerText:可以获取标签内所有的文本内容,不包括标签方法:
removeAttribute():删除属性setAttribute():设置属性
document对象
document对象:实际上是window对象的属性,document == window.document为
true
,是唯一一个既属于BOM又属于DOM的对象
document.lastModified
//获取最后一次修改页面的日期的字符串表示
document.referrer
//用于跟踪用户从哪里链接过来的
document.title
//获取当前页面的标题,可读写
document.URL
//获取当前页面的URL,可读写
document.anchors[0]或document.anchors[
"anchName"
]
//访问页面中所有的锚
document.forms[0]或document.forms[
"formName"
]
//访问页面中所有的表单
document.images[0]或document.images[
"imgName"
]
// 访问页面中所有的图像
document.links [0]或document.links[
"linkName"
]
//访问页面中所有的链接
document.applets [0]或document.applets[
"appletName"
]
//访问页面中所有的Applet
document.embeds [0]或document.embeds[
"embedName"
]
//访问页面中所有的嵌入式对象
document.write(); 或document.writeln();
//将字符串插入到调用它们的位置
总结DOM和BOM区别:
DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口
1) DOM是W3C的标准[所有浏览器都遵循的标准];
2) DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API);
3) BOM各个浏览器厂商根据DOM在各自浏览器上的实现;[表现为不同浏览器定义有差别,实现方式不同;
4) BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括
window(窗口)、location(地址栏内容相关)、history(历史)、screen(屏幕)、navigator(有很多浏览器相关的内容,通常判断浏览器类型都是通过这个对象)
DOM 是为了操作文档出现的 API,document 是其的一个对象;
BOM 是为了操作浏览器出现的 API,window 是其的一个对象。
JS中BOM和DOM之间的关系的更多相关文章
- 什么是BOM?,什么是DOM? BOM跟DOM之间的关系
什么是BOM? BOM是browser object model的缩写,简称浏览器对象模型.是用来获取或设置浏览器的属性.行为,例如:新建窗口.获取屏幕分辨率.浏览器版本号等. 比如 alert(); ...
- js中BOM与DOM的概念与区别
1.BOM 浏览器对象模型 提供了独立于内容而与浏览器窗口进行交互的对象.描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作,譬如可以弹出新的窗口,改变状态栏中的文本,对Cookie的 ...
- JS中BOM和DOM常用的事件
总结:window对象 ● window.innerHeight - 浏览器窗口的内部高度 ● window.innerWidth - 浏览器窗口的内部宽度 ● window.open() - 打开新 ...
- JS之BOM和DOM(来源、方法、内容、应用)
1.Javascript组成(此文为转载) JavaScript的实现包括以下3个部分: 1)核心(ECMAScript):描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方 ...
- js之BOM和DOM
今天我们来学习js中的一些基础的操作. 一.BOM对象 BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相 ...
- js,bom,dom(相信我,你看不懂我写的)
js dom bom 2种结合方式: 1.在body中加入script标签,<script type="text/javascript" >alert(" 向 ...
- java中paint repaint update 之间的关系
最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲.但是他们之间是怎么来调用的呢,咱 ...
- ASP.NET-MVC中Entity和Model之间的关系
Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...
- js中(function(){}()),(function(){})(),$(function(){});之间的区别
1. (function(){}())与(function(){})() 这两种写法,都是一种立即执行函数的写法,即IIFE (Immediately Invoked Function Express ...
随机推荐
- eNSP——通过Stelnet登录系统
Stelnet的原理 由于Telnet缺少安全的认证方式,而且传输过程采用TCP进行明文传输,存在很大的安全隐患,单纯提供Telnet服务容易招致主机IP地址欺骗.路由欺骗等恶意攻击.传统的Telne ...
- 菜鸟系列Fabric源码学习—创建通道
通道创建源码解析 1. 与通道创建相关配置及操作命令 主要是configtx.yaml.通过应用通道的profile生成创建通道的配置文件. TwoOrgsChannel: Consortium: S ...
- js函数(2)
8.3函数的形参和实参 js中的函数并未指定函数形参的类型,函数调用也未对传入的实参值做任何类型的检查. 8.3.1函数的形参和实参 当调用函数时传入的实参比函数声明时指定的形参个数要少,剩下的参数都 ...
- JS利用async、await处理少见的登录业务逻辑
在用uniapp开发一个项目时,有这样一个需求:用户首次登录后,uniapp自动保存用户名密码,之后不管是再次打开项目(打开项目时登录状态已失效)还是 请求接口(接口返回登录失效)时,都会先自动默认的 ...
- oracle常用命令(1)
oracle常用命令 一.登录 1.管理员身份登录:sqlplus/nolog--->conn/as sysdba 2.普通用户登录:sqlplus/nolog---->conn 用户名/ ...
- JSP和Servlet异常处理转发
<error-page> <!-- 指明异常类型. --> <exception-type>java.lang.ArrayIndexOutOfBoundsExcep ...
- 前端vue组件传参
## 路由传参 """ 转跳: <router-link :to="'/course/'+course.id">{{course.name ...
- 标准库中最值得关注的两个 装饰器是 lru_cache 和全新的 singledispatch(Python 3.4 新增)
clock 装饰器 def clock(func): @functools.wraps(func) def clocked(*args, **kwargs): t0 = time.perf_count ...
- shell习题第17题:检测磁盘
[题目要求] 写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时候,发邮件提醒 [核心要点] df d ...
- 5-MySQL DBA笔记-开发技巧
第5章 开发技巧 本章将介绍一些和数据库相关的开发技巧.由于开发领域很广,这里只选取部分比较常见的小技巧.5.1 存储树形数据 有时我们需要保存一些树形的数据结构,比如组织架构.话题讨论.知识管理.商 ...