热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2、浏览器对象BOM

什么是BOM?BOM是browserobjectmodel的缩写,简称浏览器对象模型BOM提供了独立于内容而与浏览器窗口进行交互的对象由于BOM主

什么是BOM?

BOM是browser object model的缩写,简称浏览器对象模型

BOM提供了独立于内容而与浏览器窗口进行交互的对象

由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window

BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性

BOM缺乏标准,Javascript语法的标准化组织是ECMA,DOM的标准化组织是W3C

BOM最初是Netscape浏览器标准的一部分

BOM功能简介:

从IE3和Netscape Navigator 3开始,浏览器都提供一种被称为BOM(Brower Object Model)的特性,它可以对浏览器窗口进行访问和操作。

利用BOM的相关技术,web开发者可以移动窗口、改变状态栏以及执行一些与页面中内容毫不相关的操作,例如:
- 弹出新的浏览窗口;
- 移动、关闭浏览窗口以及调整窗口大小;
- 提供web浏览器相关信息的导航对象;
- 提供页面详细信息的定位对象;
- 提供屏幕分辨率详细参数的屏幕对象;
- 支持COOKIE;
- 各种浏览器自身的一些特性,例如IE的ActiveX类等

BOM对象类别简介:

浏览器BOM对象,主要有:
- 窗口对象window;
- 浏览器信息对象navigator ;
- 屏幕对象screen;
- 网址对象location;
- 历史记录对象history;
- 文档对象document—— 窗体对象form; 锚点对象anchor;链接对象link;图像对象image;

BOM结构图



浏览器对象简介


window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
由于window是顶层对象,因此调用它的子对象时可以不显示的指明window对象,例如下面两行代码是一样的:示例
document.write("www.dreamdu.com");
window.document.write("www.dreamdu.com");

window对象:

- window对象表示浏览器中打开的窗口 。
- 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
- 在客户端 Javascript 中,window 对象是全局对象,所有的表达式都在当前的环境中计算。也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写 document,而不必写 window.document。



定义了一个sTest变量,因为是window对象下的变量,所以可以省略window.上述程序打印:true

window对象的方法:

window对象的常用方法举例
window.moveBy(20,15):浏览器窗口相对于当前位置水平向右移动20px,垂直向下移动15px。
window.moveTo(100,100):将窗口移动到用户屏幕的水平方向100px,垂直方向100px处。
window.resizeTo(240,360):把窗口的宽度调整为240px,高度调整为360px。
window.resizeBy(-50,0):相对于浏览器窗口的当前大小,把宽度减少50px,高度不变。
window.open(“http://www.sina.com”,”_blank”):在一个新的窗口打开http://www.sina.com
window.open(“http://www.sina.com”,”_blank”,”height=300,width=400,top=30,left=40,resizable=yes”):在一个新的窗口打开http://www.sina.com,新窗口的宽度为400px,高度为300px;新窗口的显示坐标为(40,30);新窗口的大小可以通过拖动动作来修改。

设置窗体外观的相关参数:

打开一个广告窗口的实例:





Window 对象的常用属性:






window对象的属性遍历实例:


结果:

onbeforeunload
onafterprint
top
location
parent
offscreenBuffering
frameElement
onerror
screen
event
clipboardData
onresize
defaultStatus
onblur
window
onload
onscroll
screenTop
onfocus
Option
length
onbeforeprint
frames
self
clientInformation
XMLHttpRequest
external
screenLeft
opener
onunload
document
closed
history
Image
navigator
status
onhelp
name

Dialog对话框对象:

“对话框”是指那些为用户提供有用信息的弹出窗口。
常用“对话框”类型:
- alert():向用户显示信息。
- confirm():要求用户确认信息。
- prompt():要求用户输入一个字符串。

简单对话框的应用:






状态栏对象:

除了创建明确不使用状态栏的浏览器窗口,每个浏览器窗口的底部都有一个状态栏,用来向用户显示一些特定的消息。

通过改变window.status或window.defaultStatus的值来改变状态栏的默认行为,如:

- Javascript:setInterval(“window.status=new Date();”,1000);void(0);

- 以上代码输入浏览器地址栏后,可以在状态栏看到系统日期和时间。




navigator对象:

navigator对象代表浏览器的总体信息,这些信息只能读取不能设置。
navigator对象有5个主要属性用于提供正在运行的浏览器的版本信息:
- appName:web浏览器的简单名称;
- appVersion:浏览器的内部版本号和其他版本信息。
- userAgent:包含浏览器的内码名称及版本号,用于识别用户。

appCodeName:浏览器的代码名。

- platform:用户操作系统。


使用循环列出navigator属性:



结果:

appCodeName
appName
appMinorVersion
cpuClass
platform
plugins
opsProfile
userProfile
systemLanguage
userLanguage
appVersion
userAgent
onLine
COOKIEEnabled
mimeTypes

运行这些语句:

document.write(navigator.appName + "
");
document.write(navigator.appVersion + "
");
document.write(navigator.userAgent + "
");
document.write(navigator.appCodeName + "
");
document.write(navigator.platform + "
");

显示:

Microsoft Internet Explorer
4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET4.0E; .NET4.0C)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET4.0E; .NET4.0C)
Mozilla
Win32

遍历:



appCodeName=Mozilla

appName=Microsoft Internet Explorer
appMinorVersion=0
cpuClass=x86
platform=Win32
plugins=
opsProfile=null
userProfile=null
systemLanguage=zh-cn
userLanguage=zh-cn
appVersion=4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET4.0E; .NET4.0C)
userAgent=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET4.0E; .NET4.0C)
onLine=true
COOKIEEnabled=true
mimeTypes=

screen对象:

该对象提供显示器的分辨率和可用颜色数信息;
主要属性如下:
- weidth,height:表示显示器的分辨率,即整个屏幕的尺寸,以px为单位;
- availWidth,availHeight:表示实际可用的显示空间大小,以px为单位;
- colorDepth:表示浏览器可以显示的颜色数的位数。

使用screen对象获得屏幕属性:




屏幕宽度是:1600

屏幕高度是:900
屏幕色深是:32
屏幕可用宽度是:1600
屏幕可用高度是:870
我的屏幕设置是:


检测屏幕分辨率,确定分辨率的程序实例:




Location对象 :

Location 对象 :代表当前窗口中显示的文档的URL。

- 属性

 - 函数


遍历location对象的属性:



结果:

hostname=192.168.1.30

href=http://192.168.1.30:81/w1.html
host=192.168.1.30:81
hash=
port=81
pathname=/w1.html
search=
protocol=http:

History对象 :

函数:


back ( ) 方法相当于后退按钮
forward ( ) 方法相当于前进按钮
go (1)代表前进1页,等价于forward( )方法;
go(-1) 代表后退1页,等价于back( )方法;

BOM对象——常用文档对象:

- 文档对象document;
- 窗体对象form;
- 锚点对象anchor;
- 链接对象link;
- 图像对象image;

文档对象document概述:
- document对象代表一个浏览器窗口或框架中显示的HTML文件。
- 浏览器在加载HTML文档时,为每一个HTML文档创建相应的document对象。
- document对象是window对象的一个属性,引用它时,可以省略window前缀。
- document拥有大量的属性和方法,结合了大量子对象,如图像对象、超链接对象、表单对象等。这些子对象可以控制HTML文档中的对应元素,使我们可以从脚本中对 HTML 页面中的所有元素进行访问

document 对象的主要属性:


主要属性应用:




结果:

最后一次修改时间09/09/2014 22:05:53
标题Document
URLfile://C:\yemian\w6.html

document 对象的集合:



实例:集合的使用

页面中的所有表单都可以通过Document对象的forms[]集合来访问:
- document.forms[0]指的是文档中的第一个表单
- document.forms[document.forms.length-1]指的是文档中的最后一个表单
通过下面的代码将页面中所有超链接的弹出位置设置为新窗口。
var myLinks=document.links;
for(var i=0;i myLinks[i].target=“_blank”;

document 对象的方法:


举例:初识document对象的应用
document.title=“new title”;//修改文档标题
document.open();//开启文档
document.write(“some words”);//写入数据
document.writeln(“some words”);//写入数据
document.close();//关闭文档

举例:document对象的使用


输入你的姓名:

运行结果:



练习:修改文档的标题
新建一空白网页;
在页面上插入文本输入框及按钮;
浏览网页,在文本框输入文本;
单击按钮,将文本框内输入的内容作为新的网页标题。


输入标题名:



Form表单对象简介

- 一个页面文档中存在的一个表单对应一个Form对象,多个表单对应多个Form对象;
- Form对象最有用的属性是elements[]集合,它包含各种表单输入元素的Javascript对象

Form对象的常用属性:


Form对象的常用方法及事件

方法:


事件:


举例:Form和elements的引用




姓名:

密码:

  




密码没有显示出来,提示错误,


锚点对象anchor和链接对象link
- 每设置一个有name属性的标签,就建立了一个锚点对象;每设置一个标签或标签,就建立了一个link对象。
- anchor 对象通常以数组的形式表示网页中的所有锚点; links 集合可返回对文档中所有 Area 和 Link 对象的引用。
- anchor数组以锚点在文档中出现的顺序存储锚点;
- anchor数组的下标从0开始,通过指定下标可以访问和查找某个锚点,或者使用 document.getElementById()。

anchor对象和link对象的常用属性
- name:设置或返回一个链接的名称。
- id:设置或返回一个链接的id。
- href:设置或返回被链接资源的URL。
- target:设置或返回在何处打开链接,属性值如下:
    - _blank: 在一个新的未命名的窗口载入文档 
    - _self :在相同的框架或窗口中载入目标文档 
    - _parent : 把文档载入父窗口或包含了超链接引用的框架的框架集 
    - _top:把文档载入包含该超链接的窗口,取代任何当前正在窗口中显示的框架 

图像对象image
- 每设置一个标签,就建立了一个图像对象。
- image 对象通常以数组的形式表示网页中的所有图像。
- images数组以图像在文档中出现的顺序存储图像。
- images数组的下标从0开始,通过指定下标可以访问和查找某个图像,或者使用 标签的name属性代替下标进行访问。

通过对BOM的了解,尤其是BOM结构图,我们应该有这样的理解:

打开浏览器时,就建立了BOM对象,通过url访问网页,传过来的html文件在浏览器中形成DOM对象,Javascript通过操作BOM和DOM做各种操作和修改。


推荐阅读
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 简答题(每题5分):1、label标签是什么,for和accesskey属性有什么用?label标签是一种常见 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • U盘测试の量产过程及量产前后性能比较
    测试优盘:亿捷速豹CM981优盘大小:4G优盘芯片:ITE(联阳)IT1167FlashID:E ... [详细]
  • 变动|时限_即时通讯开发技术分享HTTP长连接长轮询
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了即时通讯开发技术分享HTTP长连接长轮询相关的知识,希望对你有一定的参考价值。在 ... [详细]
  • 重学前端学习笔记(十八)JavaScript的闭包和执行上下文
    笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加 ... [详细]
  • Ifyouaretryingtostopthesessionfromtimeingoutallthetimeyoucandothisratherthanincreasingthes ... [详细]
author-avatar
LC--Vincent
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有