目录javascript
window
概念window
对象,表示的是浏览器的一个实例,window
对象有两重意义,一是做为javascript
访问浏览器的一个接口,二是做为ECMAScript
规定的全局对象。html
在全局做用域下定义的变量和函数都会变成window
对象的属性和方法。java
var age = 18; console.log(window.age); //18 var foo = function() { return 'foo' }; console.log(window.foo === foo); // true
全局变量与window
d对象的属性存在两点差异:web
delete
删除,而直接在window
上定义的属性能够删除。var age = 18; window.color = 'red'; delete window.color // true delete window.age //false
window
未定义属性返回undefined
obj; // Uncaught ReferenceError: obj is not defined window.obj //underfined
screenTop
:窗口相对于上边的位置
screenLeft
:窗口相对于左边的位置
在FireFox 中,screenX
和screenY
属性提供与上述相同的窗口位置信息。浏览器
var left = typeof (window.screenLeft === "number") ? window.screenLeft : window.screenX; var top = typeof (window.screenTop === "number") ? window.screenTop : window.screenY;
moveTo(x,y)
:移动窗口到固定位置,x、y分别表示新位置的坐标
moveBy(x,y)
:将当前窗口移动到相对如今水平和垂直方向上的距离框架
outerWidth
和outerHeight
:浏览器窗口自己的宽、高。innerWidth
和innerHeight
:页面视图区对应宽、高。在IE9 如下,不支持以上属性,不过 能够经过DOM
提供页面可见区域的相关信息。
document.documentElement.clientWidth
和 document.documentElement.clientHeight
提供页面视口信息,不包括外边距,边框和垂直滚动条的距离。在IE6中,只有页面在标准模式下,才支持这些属性。在混杂模式下,必须经过documtent.body.clientWidth
和documtent.body.clientHeight
才能取得相同信息。函数
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
:接收新窗口与原窗口的宽度和高度之差url
window.open()
导航到一个既定的url
,并返回一个指向新窗口的引用window.close()
关闭新打开的窗口,仅适用于经过window.open
打开的弹出窗口opener
:是window
对象的一个属性,若是该窗口是使用window.open()
方法打开的,则指向打开它的原始对象,不然为null
code
setTimeout
和 setInterval
setTimeout
即超时调用,在指定的时间事后执行代码,接收两个参数:要执行的代码和以毫秒表示的时间clearTimeout
:取消超时调用var timer = setTimeout(function() { console.log("settimeout"); }, 1000); clearTimeout(timer);
setInterval
:间歇性调用,传入参数同setTimeout
,返回一个ID,可用于在未来某个时刻取消间歇调用
clearInterval
:取消间歇调用htm
var timer = setInterval(function() { console.log("setInterval"); }, 1000); clearInterval(timer);
alert()
:接收一个字符串并显示一个对话框给用户confirm()
:接收一个字符串,显示一个确认对话框,并返回用户单击肯定按钮的布尔值prompt()
:显示“提示框”,接收两个参数,要显示给用户的文本和输入框默认值,该方法返回用户输入的值print()
:显示打印对话框find()
:传入一个字符串,返回在该页面 查找结果的布尔值
top
对象始终指向最外层框架,也就是window
。
parent
指向当前框架的直接上层框架。
self
指向window
,二者能够互换使用
每一个框架都拥有本身的window
对象,并保存在frames
集合中。在frames
集合中,能够经过数值索引(从0
开始,从左到右,从上到下)或者框架名称 来访问相应的window
对象
<html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <frameset> <frame src="frame.html" name='topFrame'> <frameset cols="50% 50%"> <frame src="left.html" name='leftFrame'> <frame src="right.html" name='rightFrame'> </frameset> </frameset> </body> </html>
以上代码中 建立了3个框架,若要访问名为topFrame
的框架,能够经过如下方式:
window.frames[0]
window.frames["topFrame"]
frames[0]
frames["topFrame"]
top.frames[0]
top.frames["topFrame"]