- 浏览: 506994 次
- 性别:
- 来自: 大连->北京
文章分类
最新评论
-
春天好:
写的很不错 推荐一个免费好用的云端爬虫开发平台不需要安装环境, ...
web爬虫 -
cpu88:
网络爬虫爬来爬去,网上信息可以瞬间扩散,但是也意味着,没有人愿 ...
web爬虫 -
biaoming:
牛。。学习了。。
MongoDB 关于索引的建议 -
biaoming:
楼主用mongo好早啊。
MongoDB 优化 -
biaoming:
好教程,学习了。。。
MongoDB 优化
BOM
BOM是Browser Object Model的缩写。它是你能访问到的浏览器和计算机屏幕的对象集合。可以通过全局对象window和window.screen访问到。
重新认识window
我们已经知道了,在javascript中,每个运行环境都会有一个全局对象。在浏览器的环境中,这个全局对象就是window。所有的全局变量都是window对象的属性 。
window.test=1;//1 test;//1
当然所有的全局函数都是window对象的方法如
parseInt('123a');//123 window.parseInt('123a');//123
除了作为全局对象,window对象还包含了浏览器环境的相关数据。让我们看看window对象的其他属性。当然每个浏览器都是不一样的。我们就说一些常用的。规范的。
window.navigator
navigator对象提供了浏览器的信息和相关功能。一个属性是navigator.userAgent。一个识别浏览器的属性。在firefox下如下:
window.navigator.userAgent; // "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
在IE浏览器如下:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET
CLR 2.0.50727; .NET CLR 3.0.04506.30)
因为每个浏览器功能是个不相同的。所以一般开发这都会用这个属性来判断浏览器,这样可以写出兼容性更好的代码。
if (navigator.userAgent.indexOf('MSIE') !== -1) { // this is IE } else { // not IE }
最好不要用这种方式判断浏览器,要用特殊功能检测的方法。原因是很难做到知道所有浏览器和相关版本。更容易使用的 是用特殊性的方法检测,如
if (typeof window.addEventListener === 'function') { //支持此方法 } else { //不支持此方法,有其他方式实现 }
另一个原因是一些浏览器允许用户去修改userAgent字符串,这样就可以做到隐藏自己使用的浏览器。
注:这一方法可以伪造成google或baidu的爬虫,有些网站针对搜索引擎进行优化,让爬虫访问更多的链接。这样修改可 能造成安全漏洞。。。
window.location
这个属性提供了当前URL的相关信息。如location.href.是全部的URL。location.host仅仅是主机。用for循环来看看所有的属性。
//URL:http://www.test.com:8080/search?p=javascript#results for(var i in location) {alert(i + ' = "' + location[i] + '"')} href="http://www.test.com:8080/search?p=javascript#results" hash="#results" host="www.test.com:8080" hostname="www.text.com" pathname="/search" port="8080" potocol="http:" search="?p=javascript"
还有三个方法。reload(),assign(),replace()
如果要跳转到其他页面有很多方法
window.location.href = 'http://www.iteye.com' location.href = 'http://www.iteye.com' location = 'http://www.iteye.com' location.assign('http://www.iteye.com')
replace方法基本和assign是相同的。唯一的区别是在历史记录里不会新建一条记录。
重载页面可以用如下方法
location.reload();
还有其他技巧可以实现页面重载
window.location.href = window.location.href; location = location
window.history
window.history允许在相同浏览器的会话下,限制的访问以前用户所访问的页面。一个例子,你可以知道在用户访问此页面前,还访问过多少页面。
window.history.length;//3
但是不能看到具体的URL,因为这是隐私。。。。
window.history[0];//ERROR
可以用history.forward()和history.back()来控制用户的前进和后退。
也可以history.go(-2),让用户返回历史页面。如果要重载页面可以用history.go(0);
window.frames
这个属性是整个页面frame的集合。需要注意的是frames和iframes没有区别。无论页面上是否有frames。window.frames总是指向window.
注:IE下的window.frames对象仅仅是个Object.
window.frames === window;//true
每个frame都有自己的全局对象window.假设页面上有
<iframe name="myframe" src="about:blank" />
想要访问iframe的window对象,如下方法都可以
window.frames[0] window.frames[0].window frames[0].window frames[0]
在页面中,可以访问fame的属性。如重载frame
frames[0].window.location.reload()
在frame也可以访问页面
frames[0].parent === window//true
可以使用top来访问最上一层的页面。
window.frames[0].window.top === window
window.screen
screen提供了浏览器之外的桌面信息。screen.colorDepth是显示器的色深。对监控系统来说比较有用
window.screen.colorDepth;//32
还可以知道屏幕的分辨率
screen.width;//1440 screen.availWidth;//1440 screen.height;//900 screen.availHeight;//847
height和availHeight不同的是,height是全部的高度,而availHeight是除了操作系统的菜单之后的高度,如windows的开始菜单。。。
window.open()/close()
再说了很多跨浏览器的window的属性之后,我们来看看window的方法。open方法可以新弹出一个页面。因为广告的原因一般用户都屏蔽了弹出页面。。。
window.open()有下列参数
- 新开网页的URL
- 新开窗口的名字
- 用逗号隔开的属性:resizable.是否让用户自定义大小,width,height 窗口的长宽,status窗口的状态栏等等
window.open()返回了一个窗口的实例
var win = window.open('http://www.iteye.com', 'packt', 'width=300,height=300,resizable=yes');
win对象指向了窗口的window对象。你可以校验win来判断弹出窗口是否被屏蔽了。
win.close()会关闭这个新的窗口。
尽量少用window.open()。可以用浮动的div来取代。
window.moveTo()/window.resizeTo()
window.moveTo(100,100).浏览器会移动到屏幕x=100,y=100的位置上。位置是相对于左上角。
window.resizeTo(100,100).浏览器调整大小100*100
window.alert(), window.prompt(), window.confirm()
我们经常使用alert()就是window的一个方法。如alert("haha").需要注意的是这三个方法都不是ECMAScript 。而是浏览器本身的方法。
confirm()让用户有个选择Ok和Cancel.
prompt()让用户有个文本输入。
confirm一般用来让用户是否确定执行某个操作的功能,如是否删除
if (confirm('是否删除?')) { // delete } else { // abort }
prompt()弹出个对话框让用户输入
var answer = prompt('And your name was?');
window.setTimeout(), window.setInterval()
这两个方法可以控制按照指定的计划来执行代码。
setTimeout()在多少毫秒之后,执行一次代码。
setInterval()每隔多少秒执行代码
function boo(){alert('javaeye!');} setTimeout(boo, 2000);//4
上面的代码两秒之后执行。注意返回一个结果为4。这个是timeout的ID,我们可以用clearTimeout方法来删除它。
下面看看setInterval的使用
var id = setInterval(boo, 2000);
以上结果会每隔两秒执行一次boo方法。我们用clearInterval来停止。
window.document
window.document是个BOM对象指向了本页的文本对象。下一节介绍DOM
评论
对 ,在IE下window.frames是个类似'window'。
发表评论
-
Javascript 基本数据类型,数组,循环以及条件 - 基本数据类型
2009-10-13 09:43 0你所使用的任意值都包含一个类型。在javascript中有如下 ... -
Javascript 基本数据类型,数组,循环以及条件 - 运算符
2009-10-12 21:41 1382运算符 运算符对一个或两个值(也可能是变量),进行一个 ... -
Javascript 基本数据类型,数组,循环以及条件-变量
2009-10-12 21:39 1876在深入javascript面向对象特性之前,让我们温习下基础知 ... -
Javascript 在浏览器环境中 (七) XMLHttpRequest
2009-02-17 17:19 2524XMLHttpRequest XMLHttpRequest是一 ... -
Javascript 在浏览器环境中 (六) 事件
2009-02-17 14:17 2657事件 事件的例子很多了。如用户输入,点击按钮等等。可以把一个j ... -
Javascript 在浏览器环境中 (五) HTML DOM
2009-02-12 13:56 1756已经知道了 DOM 适用于 XML和HTML文档。前几部分已经 ... -
Javascript 在浏览器环境中 (四) DOM节点的创建,修改与删除
2009-02-12 13:55 5990修改节点 上面一篇我们学习了DOM节点的访问,下面来看看DO ... -
Javascript 在浏览器环境中 (三) DOM节点的访问
2009-02-09 14:47 2458DOM DOM就是Document object Model的 ... -
Javascript 在浏览器环境中 (一) 目录
2009-02-05 15:35 1332前言 大家都知道Javascript程序本身不能自己运行。需要 ... -
Javascript 继承 (七)
2009-02-05 15:21 1140混合使用原型继承和复制属性 当使用继承时,更多的是想在现有的功 ... -
Javascript 继承 (六)
2009-01-19 16:36 1107深度拷贝 上一节所说到的extendCopy再深一层的对象 ... -
Javascript 继承 (五)
2009-01-13 17:59 1151要注意复制引用。 很烦的是,在复制引用的时候,有的时候并不是期 ... -
Javascript 继承 (四)
2009-01-12 23:04 1190封装继承 通过上面的学习,我们把继承封装,这样就可复用了。代码 ... -
Javascript 继承 (三)
2009-01-06 00:33 1449从子对象中访问父对象。 经典的面向对象语言都有语法可以在子类中 ... -
Javascript 继承 (二)
2009-01-05 23:04 1443仅仅继承Prototype 添加可以重用的方法和属性到prot ... -
Javascript 继承 (一)
2008-12-31 15:32 1424关于继承前言 到这里如 ... -
Javascript Prototype (二)
2008-12-30 16:59 2380穷举属性(Enumerating Properties) 要列 ... -
Javascript Prototype (一)
2008-12-30 14:22 2185关于prototype 属性 函数(functions)在ja ... -
Javascript 对象 (四)
2008-12-29 16:20 1043函数返回对象 可以用构造函数来创建个对象,也可以通过普通函数返 ... -
Javascript 对象 (三)
2008-12-29 15:33 1131This var hero = { name : 'Ra ...
相关推荐
JavaScript浏览器对象模型(BOM,Browser Object Model)是JavaScript在Web开发中用于操作浏览器特性的核心部分。它不依赖于HTML文档对象模型(DOM),而是提供了与浏览器交互的一系列对象,如Window、Navigator、...
详细介绍 BOM,javascript的浏览器对象
JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript ...
JavaScript是一种广泛应用于Web开发的脚本语言,它在浏览器环境中运行,为网页提供动态交互功能。浏览器对象模型(Browser Object Model,简称BOM)是JavaScript与浏览器进行交互的基础,允许我们访问和操作浏览器的...
浏览器对象模型(Browser Object Model,简称 BOM)是 JavaScript 中一个重要的概念,它提供了与浏览器窗口交互的方法和属性。通过 BOM,开发者可以控制浏览器窗口的行为,如改变窗口大小、位置,甚至创建新的窗口等...
JavaScript的核心是基于ECMAScript的,ECMAScript是与运行环境无关的语言,浏览器是ECMAScript的一个众所周知的运行环境,出了浏览器,js还可以运行在PS等等中。 BOM(Browser Object Model)对象是JavaScript访问...
ECMAScript不局限于特定的宿主环境,因此在不同的环境中,如浏览器或Flash,其表现形式可能会有所不同。 2. DOM(文档对象模型): DOM是一种标准,由W3C制定,用于处理HTML和XML文档内容的方法和接口。DOM将网页...
在BOM中,`window`对象是核心,它是所有其他BOM对象的父对象。BOM的结构层次如下: - `window`: 包含了浏览器窗口的所有功能。 - `navigator`: 提供浏览器的详细信息,如浏览器名称、版本等。 - `location`: 代表...
在这个过程中,JavaScript与两种关键的对象模型紧密相关:浏览器对象模型(BOM)和文档对象模型(DOM)。本文将深入探讨这两个概念,并通过实例解析它们的工作原理。 **浏览器对象模型(BOM)** BOM全称为Browser ...
在浏览器环境中,JavaScript的核心语法是ECMAScript,但BOM提供了与浏览器功能交互的一系列对象。尽管各个浏览器厂商可能有不同的实现,但其中一部分已经标准化,并被纳入HTML5规范。 BOM的核心是`window`对象,它...
JavaScript中的BOM(Browser Object Model,浏览器对象模型)和DOM(Document Object Model,文档对象模型)是两个核心概念,它们都是JavaScript与网页交互的关键部分。 **BOM(浏览器对象模型)** 1. **Window...
6. 浏览器事件:了解BOM中的事件,如滚动、加载、卸载等,以及如何处理这些事件。 7. 窗口弹出:掌握`open`、`close`和`confirm`、`prompt`、`alert`等方法,用于打开新窗口和进行用户交互。 通过这套课程的学习,...
- **窗口对象(window)**:代表浏览器窗口,是JavaScript的全局对象,所有表达式都在其环境下计算。提供调整窗口大小和位置、打开新窗口、系统提示框、状态栏控制和定时操作等功能。 - **浏览器信息对象...
document对象是BOM中非常重要的对象,它代表了整个HTML文档。document对象提供了对文档内容、结构和样式进行访问和操作的方法。document对象的links数组包含了所有的标签元素,images数组包含了所有的标签元素,...
在Web开发中,尽管ECMAScript是JavaScript的基础,但BOM对于实现与浏览器环境的交互至关重要。 首先,window对象是BOM的核心,它代表了浏览器的一个实例。在浏览器环境中,window既是JavaScript访问浏览器窗口的...
在BOM中,`window`对象是核心,它包含了诸如`document`、`location`、`navigator`、`screen`、`history`和`frames`等一系列属性。例如,`document`提供了访问和修改网页内容的能力,`location`可以用来获取或改变...
"Slide-BOM: 浏览器对象模型(BOM)的网页幻灯片" 是一个关于Web开发的主题,特别是聚焦在JavaScript中的浏览器对象模型(Browser Object Model)。"滑动炸弹"可能是指一种动态效果或者交互设计,其中幻灯片以滑动方式...
在本章"第二章JavaScript操作BOM对象4"中,我们将深入探讨JavaScript在网页中的引用方式、基本数据类型以及数组的定义与访问。这将帮助我们更好地理解和运用JavaScript这一强大的客户端脚本语言。 首先,让我们来看...
JavaScript是一种广泛应用于网页和网络应用开发的解释性脚本语言,其主要由ECMAScript、BOM(浏览器对象模型)和DOM(文档对象模型)三部分组成。在HTML、CSS和JS这构建网站的三大技术中,JavaScript负责赋予网页...
JavaScript DOM 和 BOM JavaScript 的 DOM(Document Object Model)和 BOM(Browser Object Model)是两种不同的对象模型,它们都是 JavaScript 语言的核心组件。DOM 是一种编程接口,用于访问和操作 HTML 文档中...