JavaScript权威指南读书笔记——第十四章 Window对象
来源:互联网 发布:德语助手软件注册码 编辑:程序博客网 时间:2024/05/29 19:21
计时器
setTimeout()
Window对象的setTimeout()方法用来实现一个函数在指定的毫秒数之后运行。该函数返回一个值,这个值可以传递给clearTimeout()用于取消这个函数运行。
setInterval()
和setTimeout()一样,setInterval()函数也返回一个值,这个值可以传递给clearInterval()用于取消后续函数的调用。
function invoke(f, start, interval, end){ if (!start){ start = 0; } if (arguments.length <= 2){ setTimeout(f,start); } else{ setTimeout(repeat, start); function repeat(){ var h = setInterval(f, interval); if (end){ setTimeout(function(){clearInterval(h)}, end); } } }}
浏览器定位和导航
Document对象的location属性和Window对象的location属性都引用了Location对象。
// truewindow.location === document.location;
Document对象还有一个URL属性,是文档首次载入后保存该文档的URL静态字符串。
解析URL
location
- href
- protocal
- host
- hostname
- port
- pathname
- hash描述片段标识符
- search描述查询字符串
载入新的文档
修改location.href或调用location.assign(),这修改方式其实是一种意思。
调用location.replace(),他在载入新文档之前会从浏览器历史清空。
还有个reload(),重新载入当前文档。
历史记录
Window对象的history属性引用的是该窗口的History对象。History对象额length属性表示浏览器历史列表中的元素数量。出于安全的因素,脚本不能访问已保存的URL。
History对象的back()和forward()方法与浏览器的“后退”和“前进”按钮一样。还有个go()方法,接收一个整数参数,可以在历史列表中向前(正参数)或向后(负参数)跳过任意多个页。
浏览器和屏幕信息
Navigator对象
- appName属性
- Web浏览器的全称
- appVersion
- 次属性通常以数字开始,并跟着包含浏览器厂商和版本信息的详细字符串
- userAgent
- 浏览器在它的SET_AGENT HTTP头部中发送的字符串
- platform
- 在其上运行浏览器的操作系统字符串
- onLine
- 表示浏览器但是是否连接到网络
- geolocation
- Geolocation对象定于用于确定用户地理位置信息
- javaEnabled()
- 当前浏览器可以运行java小程序时放回true(非标准的方法)
- cookiedEnable()
- 如果浏览器可以保存永久的cookie时,返回true(非标准的方法)
Screen对象
Window对象的screen属性引用的是Screen对象。
属性width和height指定的是以像素为单位的窗口大小
属性availWidth和availHeight指定的是实际可用的显示大小
colorDepth指定的是BPP(bits-per-picel)
对话框
alert()用来像用户显示一条消息。在大部分浏览器中该方法会阻塞
confirm()也可以显示一条消息,要求用户单击“确定”或“取消”按钮,并返回一个布尔值。该方法会阻塞
prompt()同样也显示一条消息,等待用户输入字符串,并放回那个字符串。该方法会阻塞
showModalDialog()显示一个保护HTML格式的“模态对话框”。第一个参数指定对话框HTML的URL。第二个参数是一个任意值,这个值在对话框的脚步中可以通过window.dialogArguments属性访问。第三个参数是非标准的,包含以分号隔开的name=value对。showModalDialog()这个方法指导窗口关闭之前不会放回。当窗口关闭后,window.returnValue属性的值就是次方法返回值。
作为Window对象属性的文档元素
如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,他的名字是id属性的值,而他们的值纸箱表示文档元素的HTMLElement对象。
多窗口和窗体
打开窗口
使用Window对象的open()方法可以打开一个新的浏览器窗口,并返回代表那个窗口的Window对象。
它有4个可选的参数。
第一个参数是要在新窗口中显示文档的URL。
第二个参数是新打开的窗口的名字。如果知道的是一个已经存在的窗口的名字,会直接使用已存在的窗口。如果省略此参数,会使用指定的名字“_blank”。
- _blank
- 新窗口
- _self
- 自身
- _parent
- 父窗口
- _top
- 顶级祖先窗口
Window对象如果有name属性,就用它保存窗口名字。该属性是可写的,并且脚步可以随意设置。如果传递给window.open()一个除“_blank”之外的名字,通过该调用创建的窗口将以该名字作为name属性的初始值。如果<iframe>元素有name属性,表示该iframe的Window对象会用它作为name属性的初始值。
第三个参数是一个以逗号分隔的列表,包含大小和各种属性,用于表面新窗口是如何打开的。
第四个参数只在第二个参数命名的是一个村庄的窗口才有用。是一个布尔值,如果为true第一个参数指定的URL替换掉窗口浏览历史的当前条目。如果为false在窗口历史中创建一个新的条目。
关闭窗口
调用Window对象的close()方法将关闭一个窗口。
即使一个窗口关闭了,代表它的Window对象仍然存在。已关闭的窗口会有个值为true的closed属性,它的document回事null,它的方法通常也不会再工作。
窗体之间的关系
如果一个窗口是顶级窗口,那么其parent属性引用的就是这个窗口本身
parent == self;
引用窗口或窗体的子孙窗体。窗体是通过<iframe id=”f1”>,那么表示改iframe元素的对象就是。
var iframeElement = document.getElementById("f1");
<iframe>元素有个contentWindow属性,引用窗体的Window对象,所以窗体的Window对象就是:
var childFrame = document.getElementById("f1").contentWindow;
可以进行反向操作,从表示窗体的Window对象来获取该船体的<frame>元素。用Window对象的frameElement属性。
var elt = document.getElementById("f1");var win = elt.contentWindow;// truewin.frameElement === elt;//顶级窗口来说永远是truewindow.frameElement ===null;
Window对象的frames属性引用的是类数组对象,可以通过数字或窗体名进行索引。
交互窗体中的JavaScript
假设Web页面里有两个<frame>元素,分表叫“A”和“B”,假设这些窗体所包含的文档来自于相同的一个服务器,并且包含交互脚本。窗体A里定义了一个变量i
var i = 3;
这个变量只是全局对象的一个属性,也就是Window对象的一个属性。窗体A中的代码可以用标识符i来引用变量,或者Winow对象显示地引用这个变量
window.i;
由于窗体B中的脚本可以引用窗体A的Window对象,因此它也可以引用那个Window对象的属性
// 改变窗体A中的变量i的值parent.A.i=4;
- JavaScript权威指南读书笔记——第十四章 Window对象
- 《JavaScript权威指南》——Window对象
- JavaScript权威指南读书笔记——第六章 对象
- 读书笔记 —《JavaScript权威指南》
- JavaScript权威指南读书笔记—— 模块
- 《javascript权威指南》读书笔记(3)—语句
- JavaScript权威指南读书笔记——第七章 数组
- JavaScript权威指南读书笔记——第八章 函数
- JavaScript权威指南读书笔记——第十章 正则表达式
- JavaScript权威指南读书笔记——第十七章 事件处理
- JavaScript权威指南读书笔记——第十九章 jQuery类库
- JavaScript权威指南读书笔记——第二十章客户端存储
- 《JavaScript权威指南》——对象
- 《javascript权威指南》读书笔记(1)—词法结构、类\变量\对象
- 《JavaScript权威指南》读书笔记
- javascript权威指南读书笔记
- 《JavaScript权威指南》 -- 读书笔记
- javascript权威指南--读书笔记
- MATLAB 作图系列(一) 有源代码+效果图
- Windows系统下的TCP参数优化
- 怎样做才是最优雅方式切换 web 项目数据源 ?
- UE4学习笔记3rd:配置游戏输入
- 折叠标题栏设置属性解析
- JavaScript权威指南读书笔记——第十四章 Window对象
- 第一个libevent程序
- 4.three.js中的坐标系
- OPENCV深拷贝和浅拷贝
- Vue.js 会成为像 Angular 和 React 那样的巨头吗?
- 反转链接详解
- [第七季]11.遍历元素的父辈和祖先
- CSS知识总结(未完成)
- 基于mysqli封装的数据库类