全部章节   >>>>


本章目录

3.1 浏览器对象模型

3.1.1 浏览器对象模型

3.2 window 对象

3.2.1 window 对象的常用属性及方法

3.2.2 使用window对象创建对话框

3.2.3 使用window对象操作窗口

3.2.4 使用window对象执行计时事件

3.2.5 实践练习

3.3 history 对象和 location 对象

3.3.1 history对象

3.3.2 location对象

3.3.3 实践练习

3.4 screen对象和navigator对象

3.4.1 screen对象

3.4.2 navigator对象

3.4.3 实践练习

总结:


3.1 浏览器对象模型

3.1.1 浏览器对象模型

BOM 是浏览器对象模型的简称。JavaScript 将整个浏览器窗口按照实现的功能不同拆分成若干个对象

一个完整的 BOM 主要包括 window 对象、history 对象、location 对象和 document 对象等

BOM中,整个对象的层次关系如下图

3.2 window 对象

3.2.1 window 对象的常用属性及方法

window 对象处于对象模型的第一层,对于每个打开的窗口系统都会自动将其定义为window 对象

window 对象常用属性

属性

含义

document

窗口中当前显示的文档对象

history

history 对象保存窗口最近加载的 URL

location

当前窗口的 URL

status

状态栏文本

window 对象常用方法

方法

说明

prompt

显示可提示用户输入的对话框

alert

显示带有一个提示消息和一个确定按钮的警示框

confirm

显示一个带有提示信息、确定和取消按钮的确认框

close

关闭浏览器窗口

open

打开一个新的浏览器窗口,加载给定URL所指定的文档

setTimeout

在设定的毫秒数后调用函数或计算表达式

setInterval

按照设定的周期(以毫秒计)来重复调用函数或表达式

clearInterval

取消重复设置,与setInterval对应

3.2.2 使用window对象创建对话框

alert() 方法弹出警告对话框

<body><script type="text/javascript">var age = 23;var name = " 张三 ";window.alert(" 我是:" + name + "\n 年龄是:" + age);</script>
</body>

prompt() 方法创建提示对话框

<body><script type="text/javascript">var name = window.prompt(" 请输入昵称:");window.alert(" 欢迎你:"+ name);</script>
</body>

confirm() 方法创建确认对话框

<body><script type="text/javascript">var flag = window.confirm(" 确认删除吗 ?");if(flag) {window.alert(" 执行删除操作 ");} else {window.alert(" 取消删除操作 ");}</script>
</body>

3.2.3 使用window对象操作窗口

window对象的 open() 方法和 close() 方法用于打开和关闭窗口

open方法的第一个参数是新窗口的URL,第二个参数是给新窗口的命名,第三个参数是设置新窗口的特征

名称

说明

height、width

窗口文档显示区的高度、宽度,单位为像素

left、top

窗口与屏幕左边、顶端的距离,单位为像素

示例:制作一个从天而降的广告页面,打开主页面时,广告页面也随之打开

<body><script type="text/javascript">var newWin;window.onload=function(){        newWin=window.open("adv.html","adv","width=800,height=      500,left=275,top=118");}</script><h2> 主页面 </h2><a href="javascript:newWin.close()"> 关闭广告 </a>
</body>

3.2.4 使用window对象执行计时事件

setTimeout() 方法会在指定的时间执行指定的代码并退出。setInterval() 方法会根据设置的时间间隔反复执行指定的代码,直至程序结束或利用clearInterval() 方法取消

<body><script type="text/javascript">setTimeout("alert('hello')",2000);</script>
</body>

示例:使用setInterval()和clearInterval()制作小女孩看书的动态效果

  <script type="text/javascript">var i=1;   // 保存动画当前播放的静态画面的索引function change() {if(i<4) i++;else i=1;   // 播放到最后一幅图画时,再从头开始document.getElementById("pic").src="../img/girl_"+i+".gif";} var dh;function play() {dh = setInterval("change()",100);}function stop() {clearInterval(dh);}</script>

requestAnimationFrame() 方法是浏览器用于定时循环操作的一个接口,类似于 setTimeout,主要用途是按帧对网页进行重绘

优势在于充分利用显示器的刷新机制,比较节省系统资源

requestID = window.requestAnimationFrame(callback);

示例:使用requestAnimationFrame()方法让正方形从左到右慢慢移动

var startTime = 0;  
function change()  {   if (startTime == 0)  {startTime = new Date();}   time = new Date();   document.getElementById("div").style.left = ((time - startTime) / 10  %  500)  +  "px";
}  
var animation;  
function start()  {   animation = requestAnimationFrame(start);   change();  
}  
function stop()  {cancelAnimationFrame(animation);
} 

3.2.5 实践练习

3.3 history 对象和 location 对象

3.3.1 history对象

history对象保存了当前浏览器窗口中打开页面的一个历史记录列表,使用 history对象可以将当前浏览器页面跳转到某个曾经打开过的页面

方法

描述

back()

后退一个页面,相当于浏览器后退按钮

forward()

前进一个页面,相对于浏览器前进按钮

go()

打开一个指定位置的页面

可以使用 history.go(-1) 和 history.go(1) 代替 histroy.back() 和 history.forward()

示例:使用history对象中的方法实现页面跳转

<body><a href="../3.9-2.html"> 打开下一个页面 </a>
</body>
<body><a href="http://www.baidu.com"> 打开百度页面 </a><br/><a href="javascript:window.history.forward()"> 前进 </a><br/><a href="javascript:window.history.back()"> 后退 </a><br/><a href="javascript:window.history.go(1)"> 前进 </a><br/><a href="javascript:window.history.go(-1)"> 后退 </a>
</body>

location对象用于管理当前打开窗口的URL信息,相当于浏览器的地址栏

3.3.2 location对象

location对象用于管理当前打开窗口的URL信息,相当于浏览器的地址栏

名称

描述

href 属性

返回或设置当前页面的 URL

hostname 属性

返回 Web 主机的域名

pathname 属性

返回当前页面的路径和文件名

port 属性

返回 Web 主机的端口(80 或 443)

protocol 属性

返回所使用的 Web 协议(http:// 或 https://)

reload() 方法

重新加载当前页面,相对于浏览器的刷新按钮

assign() 方法

加载新的文档

示例:使用location对象中的属性和方法实现加载用户所选页面

  <script type="text/javascript">window.onload = function() {var info = document.getElementById("info");info.innerHTML=" 主机域名:" +window.location.hostname+"<br/> URL 地址:"+window.location.href +"<br/> 主机端口:"+window.location.port +"<br/>Web 协议:"+window.location.protocol+"<br/> 页面的路径和文件名:" +     window.location.pathname;}function changURL() {// 获取选择的列表项的值var url = document.getElementById("sel").value;window.location.href = url; // 设置当前浏览器窗口地址栏的 URL}</script>

3.3.3 实践练习

3.4 screen对象和navigator对象

3.4.1 screen对象

window.screen 对象包含了用户屏幕的相关信息,在编写时可以不使用 window前缀

属性

描述

availWidth

返回显示屏幕的可用宽度(除 Windows 任务栏之外)

availHeight

返回显示屏幕的可用高度(除 Windows 任务栏之外)

colorDepth

返回目标设备或缓冲器上的调色板的比特深度

pixelDepth

返回显示屏幕的颜色分辨率(比特每像素)

width

返回显示器屏幕的宽度

height

返回显示器屏幕的高度

示例:使用screen对象中的属性获取访问者的屏幕信息

    <h3> 你的屏幕:</h3><script type="text/javascript">document.write(" 总宽度 / 高度 :");document.write(screen.width+"*"+screen.height);document.write("<br/>");document.write(" 可用宽度 / 高度 :");document.write(screen.availWidth+"*"+screen.availHeight);document.write("<br/>");document.write(" 色彩深度 :");document.write(screen.colorDepth);document.write("<br/>");document.write(" 色彩分辨率 :");document.write(screen.pixelDepth);</script>

3.4.2 navigator对象

navigator对象包含了浏览器的有关信息

navigator 对象的实例是唯一的,可以用 window 对象的 navigator 属性来引用它

方法

描述

javaEnabled()

规定浏览器是否启用 Java

taintEnabled()

规定浏览器是否启用数据污点,仅适用于 IE 浏览器(Data Tainting)

navigator对象的常用属性如下

属性

描述

appCodeName

返回浏览器的代号

appMinorVersion

返回浏览器的次级版本

appName

返回浏览器的名称

appVersion

返回浏览器的平台和版本信息

browserLanguage

返回当前浏览器的语言

cookieEnabled

返回浏览器中是否启用 cookie 的布尔值

cpuClass

返回浏览器系统的 CPU 等级

onLine

返回系统是否处于联机模式的布尔值

platform

返回运行浏览器的操作系统平台

systemLanguage

返回操作系统使用的默认语言

userAgent

返回由客户机发送服务器的 user-agent 头部的值

userLanguage

返回操作系统的自然语言设置

示例:使用navigator对象中的属性和方法获取当前浏览器的相关信息

<body><div id="info"></div><script type="text/javascript">var info = "<p> 浏览器代号 :" + navigator.appCodeName   + "</p>";info+="<p> 浏览器名称 :"+navigator.appName+"</p>";info+="<p> 浏览器版本 :"+navigator.appVersion+"</p>";info+="<p> 是否处于联机模式 :"+navigator.onLine+"</p>";info+="<p> 启用 Cookies:"+navigator.cookieEnabled+"</p>";info+="<p> 硬件平台 :"+navigator.platform+"</p>";info+="<p> 用户代理 :"+navigator.userAgent+"</p>";info+="<p> 是否启用 Java:"+navigator.javaEnabled()+"</p>";document.getElementById("info").innerHTML=info;</script>
</body>

由于 navigator 会误导浏览器检测,所以可以使用对象检测来嗅探不同的浏览器。但不同的浏览器支持不同的对象,因此对于不同的浏览器,要使用不同的对象来检测

集合

描述

返回对文档中所有嵌入式对象的引用

plugins[]

该集合是一个 plugin 对象的数组,其中的元素代表浏览器已经安装的插件。plugin对象提供的是有关插件的信息,其中包括它所支持的 MIME 类型的列表

虽然 plugins[ ] 数组是由 IE4 定义的,但是在 IE4 中它却总是空的,因为 IE4 不支持插件和 plugin 对象

示例:使用navigator对象显示出浏览器安装了哪些插件

<body><h2> 你的浏览器安装了以下插件:</h2><script type="text/javascript">var plug = navigator.plugins;for (var i=0; i<plug.length;i++){document.write(plug[i].name+"<br/>")}</script>
</body>

3.4.3 实践练习

总结:

window是浏览器对象模型的顶层对象

  • alert() 方法:显示带有一个提示消息和一个“确定”按钮的警示框
  • confirm() 方法:显示一个带有提示信息、“确定”和“取消”按钮的确认框
  • open() 方法:打开一个新的浏览器窗口,加载给定 URL 所指定的文档
  • setInterval() 方法:按照设定的周期(以毫秒计)来重复调用函数或表达式

history对象用来管理当前窗口最近访问过的URL

location对象用来管理当前窗口的URL信息

  • href 属性:返回或设置当前页面的URL
  • reload() 方法:重新加载当前页面,相对于浏览器的刷新按钮
  • assign() 方法:加载新的文档

JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】相关推荐

  1. JavaScript交互式网页设计简介

    JavaScript交互式网页设计 JavaScript简介: JavaScript诞生于1995年,主要是进行用户输入的合法性验证. JavaScript的概念: JavaScript可以嵌入到HT ...

  2. JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】

    全部章节   >>>> 本章目录 1.1 JavaScript 概述 1.1.1 JavaScript 简介 1.1.2 JavaScript 的概念和执行原理 1.1.3 J ...

  3. Javascript交互式网页设计试题(一)

    精选JS 50道试题,答案在首尾,喜欢收藏吧! 1.在JQuery中,下列( )方法能够获取或设置元素的文本内容,不含HTML标签. A attr() B text() C value() D rep ...

  4. JavaScript交互式网页设计笔记

    一.JavaScript基本语法 1.简介 JavaScript诞生于1995年,主要是进行用户输入的合法性验证 Web脚本语言  轻型的.解释性的  浏览器内 2.执行原理 当客户端向服务器请求某个 ...

  5. 云南农职《JavaScript交互式网页设计》 综合机试试卷①——实现购物车的结算

    一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目2(100分) 1.功能需求: 马上过节了,电商网站要进行促销活动,需要实现该商城购物车的商品 ...

  6. JavaScript交互式网页设计 • 【第5章 JavaScript对象】

    全部章节   >>>> 本章目录 5.1 Object 对象和 Date 对象 5.1.1 JavaScript 的内部对象 5.1.2 Object对象 5.1.3 Date ...

  7. JavaScript交互式网页设计 • 【第6章 初识jQuery】

    全部章节   >>>> 本章目录 6.1 jQuery概述 6.1.1 初识 jQuery 6.1.2 jQuery 基本功能 6.1.3 搭建 jQuery 开发环境 6.1 ...

  8. JavaScript交互式网页设计 • 【第8章 jQuery动画与特效】

    全部章节   >>>> 本章目录 8.1 显示隐藏动画效果 8.1.1 show() 方法与hide() 方法 8.1.2 toggle()方法 8.1.3 实践练习 8.2 ...

  9. JavaScript交互式网页设计 • 【第2章 JavaScript函数与事件】

    全部章节   >>>> 本章目录 2.1 JavaScript 自定义函数 2.1.1 函数的定义 2.1.2 函数的调用 2.1.3 函数的参数 2.1.4 函数的返回值 2 ...

最新文章

  1. 致命错误: zlib.h:没有那个文件或目录
  2. Python D6 if分支结构
  3. 【Android】Android中ContentProvider组件详解
  4. Ubuntu Wifipumpkin3 WiFi钓鱼工具,应该适用于绝大多数的Debian系的linux 发行版
  5. Spring Boot应用程序浪费了内存
  6. java学习(49):方法重载
  7. fedora linux命令,Fedora Linux的一些常用设置和常用命令
  8. mooc哈尔滨c语言作业答案,哈尔滨工业大学C语言2016年MOOC在线测试答案.doc
  9. 基于Keras的YOLOv4目标检测平台
  10. Mybatis(动态SQL大全)
  11. 109.虚函数与析构构造
  12. weblogic安装升级配置
  13. 2022最新开源分销商城小程序源码系统前端+后端+搭建教程
  14. Java经过的天数的计算公式_Java如何通过计算两个日期的时间差来算出天数
  15. 【已解决】PEP 8: W292 no newline at end of file等相关PEP 8错误与警告
  16. CQOI2020 退役记
  17. Thinkphp.php
  18. 高等数学-学习笔记-汤讲义
  19. MBR-BIOS启动无损转换为UEFI+GPT启动
  20. dm3730调试笔记

热门文章

  1. Java实现 LeetCode 623 在二叉树中增加一行(遍历树)
  2. 去除IE浏览器弹出窗口
  3. mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
  4. keil MDK AC6设置noinit的用法
  5. 移动硬盘加密后在linux中如何使用方法,移动硬盘上的文件加密方法
  6. 计算机毕业设计-基于神经网络APP-整合Vue+SpringBoot+TensorFlow框架-诗联AI
  7. 西南民族大学第十届校赛(同步赛) 个人笔记 题解
  8. 网易云短信php接口,网易云音乐简单API
  9. c语言程序设计工作任务,C语言程序设计任务驱动教程
  10. LaTeX学习---字体设置