一、window对象

1、全局作用域

所有在全局作用域声明的变量和函数,都变成window对象的属性和方法

全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以

var age = 29;
window.color = "red";
delete window.age;
delete window.color;
alert(window.age);          //29
alert(window.color);        //undefined

2、框架

每个框架都有自己的window对象,并且保存在frames集合中,可以通过数值索引或框架名称访问相应的window对象

top对象始终指向最外层的框架

parent对象始终指向当前框架的直接上层框架(父框架)

3、窗口大小

//取得视口大小
var pageWidth = window.innerWidth,pageHeight = window.innerHeight;
if (typeof pageWidth !== "number") {if (document.compatMode === "CSS1Compat") {pageWidth = document.documentElement.clientWidth;pageHeight = document.documentElement.clientHeight;} else {pageWidth = document.body.clientWidth;pageHeight = document.body.clientHeight;}
}

resizeTo()、resizeBy()方法可以调整浏览器窗口的大小,接收两个参数(一个宽度、一个高度)

4、弹出窗口

window.open()方法,可以导航到一个特定的URI,也可以打开一个新的浏览器窗口。
接收四个参数:要加载的URI、窗口目标、一个特性字符串、一个布尔值。(一般只使用第一个参数)

5、间歇调用和超时调用

超时调用setTimeout()方法,接收两个参数:要执行的代码(函数)和以毫秒表示的时间
clearTimeout()方法,取消超时调用,接收一个参数:超时调用ID

间歇调用setInterval()方法,clearInterval()方法(最好不要使用间歇调用)

一般使用超时调用来模拟间歇调用

var num = 0;
var max = 10;
var intervalId = null;
function incrementNumber() {num++;if (num < max) {setTimeout(incrementNumber, 500);} else {alert("done");}
}
setTimeout(incrementNumber, 500);

6、系统对话框

它们的外观又操作系统或浏览器设置决定,不能由css决定。打开的对话框都是同步和模态的

  • alert(),生成警告对话框,向用户显示一些他们无法控制的信息
  • confirm(),生成确认对话框,让用户决定是否执行给定的操作
  • prompt(),生成提示框,用于提示用户输入一些文本

二、location对象

提供与当前窗口中加载的文档有关的信息,还可以将URI解析为独立的片段

查询字符串

function getQueryStringArgs() {//取得字符串并去掉开头的问号var qs = (location.search.length > 0 ? location.search.substring(1) : ""),//保存数据的对象args = {},//取得每一项items = qs.length ? qs.split("&") : [],item = null,name = null,value = null,//for循环中使用i = 0,len = items.length;for (i = 0; i < len; i++) {item = items[i].split("=");name = decodeURIComponent(item[0]);value = decodeURIComponent(item[1]);if (name.length) {args[name] = value;}}return args;
}

三、检测插件

//检测非IE浏览器中的插件
function hasPlugin(name) {name = name.toLowerCase();for (var i = 0; i < navigator.plugins.length; i++) {if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {return true;}}return false;
}
//检测IE中的插件
function hasIEPlugin(name) {try {new ActiveXObject(name);return true;} catch (ex) {return false;}
}

针对每个插件分别创建检测函数

//检测所有浏览器中的Flash
function hasFlash() {var result = hasPlugin("Flash");if (!result) {result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");}return result;
}
//检测所有浏览器中的QuickTime
function hasQuickTime() {var result = hasPlugin("QuickTime");if (!result) {result = hasIEPlugin("QuickTime.QuickTime");}return result;
}

转载于:https://www.cnblogs.com/u14e/p/5238227.html

javascript高级程序设计笔记-第八章(BOM)相关推荐

  1. javascript高级程序设计--笔记01

    概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型( ...

  2. JavaScript高级程序设计笔记01 | 第一章到第四章 | 关键字与保留字 | 数据类型 | 操作符 | 作用域

    观前提示:大部分都是书上的内容,个人理解的部分的较少,看我的笔记还不如去看书 第二章 async:可选.表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本.只对外部 ...

  3. JavaScript高级程序设计 第12章---BOM浏览器对象模型

    第12章 BOM 本章内容: 理解BOM的核心--window 对象 控制窗口及弹窗 通过location 对象获取页面信息 使用navigator 对象了解浏览器 通过history 对象操作浏览器 ...

  4. JavaScript高级程序设计笔记 - 第四章 变量 作用域 内存问题

    4.1 基本类型和引用类型的值 基本类型: 简单的数据段 引用类型: 指那些可能有多个值构成的对象, 指保存在内存中的对象 4.1.2 复制变量值 除了保存的方式不同之外,在从一个变量向另一个变量复制 ...

  5. javascript高级程序设计笔记

    1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message="hello world!"; var messageAsBoole ...

  6. 《javascript高级程序设计》第八章 The Browser Object Model

    8.1 window 对象 8.1.1 全局作用域 8.1.2 窗口关系及框架 8.1.3 窗口位置 8.1.4 窗口大小 8.1.5 导航和打开窗口 8.1.6 间歇调用和超时调用 8.1.7 系统 ...

  7. JavaScript高级程序设计笔记 事件冒泡和事件捕获

    1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body><div> click me!</div> < ...

  8. JavaScript高级程序设计(读书笔记)(六)

    本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第六章 面向对象的程序设计 面向对象(Object-Oriented, OO)的语言有一 ...

  9. 《JavaScript高级程序设计》读书笔记 -12.1 window对象

    <JavaScript高级程序设计>读书笔记 -12.1 window对象 12.1 window对象 12.1.1 Global作用域 12.1.2 窗口关系[不是很懂] 12.1.3 ...

  10. 《JavaScript高级程序设计》学习笔记(一)

    文章目录 一.什么是JavaScript JavaScript的组成 二.HTML中的JavaScript 2.1 <script>元素 2.1.1 标签位置 2.1.2推迟执行脚本 2. ...

最新文章

  1. (0011) iOS 开发之模拟HTTP请求与响应,返回自己想要的报文。
  2. 三十八,反射的应用:工厂模式
  3. 深入理解RMQ LCA
  4. dll窗体的创建与调用
  5. c++输出的值精确到小数点后5位_七年级上册第一章有理数专讲专练(适合暑期预习后巩固)...
  6. 设置环境变量的三种方法【转载】
  7. PTA11、 输入输出-计算字符串中的数 (10 分)
  8. 基于react antd的新的tag和Badge的组合使用
  9. UITableVIew与UICollectionView带动画删除cell时崩溃的处理
  10. C# 多线程七之Parallel
  11. java unicode 藏文_藏文各个字母对应的unicode编码和十进制
  12. 使用 Clang Tools —— ClangFormat
  13. 实用的文字转语音免费软件推荐
  14. 行式 Excel 文件去重
  15. Windows 窗口层次关系
  16. Redis Master/Salve Replication(主从复制模式)
  17. Redis主从连接失败 connected_slaves:0
  18. 潘多拉 搭建 php服务器,MAYA带你重建潘多拉!
  19. 矮油~ 二叉树的深度优先遍历与广度优先遍历 [ C++ 实现 ]
  20. 各类分布----二项分布,泊松分布,负二项分布,gamma 分布,高斯分布,学生分布,Z分布...

热门文章

  1. [转载]Web Frameworks for Python by Guido van Rossum
  2. idea修改项目编码
  3. XCode中的Debug View Hierarchy功能
  4. RAC性能分析 - gc buffer busy acquire 等待事件
  5. Qweb Pdf 中添加 图片
  6. Arduino 各种模块篇 舵机 Modules - Servo
  7. A blog from Sensory
  8. 【leetcode】最强边界条件
  9. Altium Designer(四):敷铜设置
  10. 「SCOI2015」小凸玩密室 解题报告