犀牛——第14章 Window对象
来源:互联网 发布:淘宝鞋子店铺排行榜 编辑:程序博客网 时间:2024/05/29 03:31
14.1 计时器
Window对象的setTimeout()方法用来实现一个函数在指定的毫秒数之后运行。setTimeout()返回一个值,这个值传递给clearTimeout()用于取消这个函数的执行。
setInterval()和setTimeout()一样,只不过这个函数会在指定毫秒数的间隔里重复调用:
setInterval(updateClock,60000);//每60秒调用一次updateClock()
和setTimeout()一样,setInterval()也返回一个值,这个值可以传递给clearInterval(),用于取消后续函数的调用。
14.2 浏览器定位和导航
Window对象的location属性引用的是Location对象,它表示该窗口中当前显示的文档的URL,并定义了方法来使窗口载入新的文档。
14.2.1 解析URL
Location对象的href属性是一个字符串,后者包含URL的完整文本。Location对象的toString()方法返回的href属性的值,因此在会隐式调用toString()的情况下,可以使用location对象代替location.href。
这个对象的其他属性——protocol,host,hostname,port,pathname和search,分别表示URL的各个部分。它们称为“URL分解”属性。
Location对象的hash和search属性比较有趣。hash属性返回URL中的“片段标识符”部分。search属性也类似,它返回的是问号之后的URL,这部分通常是某类型的查询字符串。
14.2.2 载入新的文档
Location对象的assign()方法可以使窗口载入并显示你指定的URL中的文档。replace()方法也类似,但它载入新文档之前会从浏览器历史中把当前文档删除。
Location对象还定义了reload()方法,后者可以让浏览器重新载入当前文档。
使浏览器跳转到新页面的一种更传统的方法是直接把新的URL赋给location属性:
location = "http://www.baidu.com";
纯粹的片段标识符是相对URL的一种类型,它不会让浏览器载入新文档,但只会使它滚动到文档的某个位置。
location="#top";//滚动到id为top的元素位置
location对象的URL分解属性是可写的:
location.search = "?page="+(pagenum+1);//载入下一个页面
14.3 浏览历史
Window对象的history属性引用的是该窗口的History对象。History对象是用来把窗口的浏览历史用文档和文档状态列表的形式表示。History对象的length属性表示浏览历史列表中的元素数量。
History对象的back()和forward()方法与浏览器的“后退”和“前进”按钮一样:它们是浏览器在浏览历史中前后跳转一格。
第三个方法go()接受一个整数参数,可以在历史列表中向前(正参数)或向后(负参数)跳过任意多个页。
history.go(-2);//后退两个历史记录,相当于单击“后退”按钮两次
14.4 浏览器和屏幕信息
14.4.1 Navigator对象
Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象。
14.4.2 Screen对象
Window对象的screen属性应用的是Screen对象。它提供有关窗口显示的大小和可用的颜色数量的信息。
14.5 对话框
alert()向用户显示一条消息并等待用户关闭对话框
confirm()也显示一条消息,要求用户单击"确定"或“取消”按钮,并返回一个布尔值。
prompt()同样也显示一条消息,等待用户输入字符串,并返回那个字符串。
showModalDialog()显示一个包含HTML格式的“模态对话框”,可以给它传入参数,以及对话框里返回值。
14.6 错误描述
14.7 作为Window对象属性的文档元素
如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向表示文档元素的HTMLElement对象
14.8 多窗口和窗体
14.8.1 打开和关闭窗口
使用Window对象的open()方法可以打开一个新的浏览器窗口(或标签页,这通常和浏览器的配置选项有关)。有4个可选的参数:
1.在窗口中显示文档的URL
2.新打开的窗口的名字
3.一个以逗号分隔的列表,包含大小和各种属性,用以表明新窗口是如何打开的。
4.只有在第二个参数命名的是一个存在的窗口时才有用。它是一个布尔值,声明了由第一个参数指定的URL是应用替换掉窗口浏览历史的当前条目(true),还是应该在窗口浏览历史中创建一个新的条目(false),后者是默认的设置。
在由window.open()方法创建的窗口中,opener属性引用的是打开它的脚本的Window对象。在其他窗口中,opener为null:
w.opener !== null; //true,对于由w创建的任意窗口
w.open().opener === w;//true,对于任意窗口w
关闭窗口
方法close()将关闭一个窗口。
w.close();
window.close();
14.8.2 窗体之间的关系
窗体可以用parent属性引用包含它的窗口或窗体的Window对象:
parent.history.back();
如果一个窗口是顶级窗口或标签,而不是窗体,那么其parent属性引用的就是这个窗口本身:
parent = self;//只有顶级窗口才回返回true
有不止一种方法可以引用窗口或窗体的子孙窗体。
窗体是通过<iframe>元素创建的。可以用获取其他元素的方法来获取一个表示<iframe>的元素对象。
var iframeElement = document.getElementById("f1");
<iframe>元素有contentWindow属性,引用该窗体的Window对象,所以此窗体的Window对象就是:
var childFrame = document.getElementById("f1").contentWindow;
可以进行反向操作——从表示窗体的Window对象来获取该窗体的<iframe>元素——用Window对象的frameElement属性。
var elt = document.getElementById("f1");
var win = elt.contentWindow;
win.frameElement === elt //对于帧来说永远是true
window.frameElement === null //对于顶级窗口来说永远是true
每个Window对象都有一个frames属性,它引用自身包含的窗口或和窗体的子窗体。frames属性应用的是类数组对象,并可以通过数字或窗体名进行索引。要引用窗体的第一个子窗口,可以用frames[0]。注意frames[]数组里的元素的window对象,而不是<iframe>元素。
如果指定<iframe>元素的name或id属性,那么除了用数字进行索引之外,还可以用名字来进行索引。例如,名字为“f1”的帧应该用frames["f1"]或frames.f1.
14.8.3 交互窗口中的JavaScript
0 0
- 犀牛——第14章 Window对象
- 犀牛——第6章对象 6.1 创建对象
- 犀牛——第6章对象 6.3删除属性
- 犀牛——第6章对象 6.5 枚举属性
- 犀牛——第5章语句
- 犀牛——第3章 类型、值和变量 3.5 全局对象
- 犀牛——第3章 类型、值和变量 3.6 包装对象
- 犀牛——第6章对象6.2属性的查询和设置
- 犀牛——第6章对象 6.7属性的特性
- 犀牛——第2章词法结构
- 犀牛——第4章表达式和运算符
- 犀牛——第7章数组 7.1 创建数组
- 犀牛——第7章 7.3稀疏数组
- 犀牛——第7章数组 7.8 数组方法
- 犀牛——第7章数组 7.9数组方法
- 犀牛——第8章函数 8.1 函数定义
- 犀牛——第8章函数8.2函数调用
- 犀牛——第8章函数 8.6闭包
- Java关键字final、static使用总结
- 面向接口编程及面向接口编程的好处
- MapReduce——EquivalentJoin
- 微信ANDROID客户端-会话速度提升70%的背后
- Redis安装
- 犀牛——第14章 Window对象
- 转 Java类加载的延迟初始化
- XAMPP+Mantis安装步骤
- 简易计算器
- vnc连接Linux服务器蓝屏的解决
- Codeblocks改文本颜色
- 【遍历枚举】hdu 5288 OO’s Sequence
- 1.JAXB注解
- 人际关系