一、window对象概述
代表浏览器中打开的窗口,通过window对象实现对浏览器的打开、关闭和控制等等;
1、window对象属性:
- document 对话框中显示的当前文档;
- location 指定当前文档的URL
- name 对话框的名字;
- status 状态栏中的当前信息;
- top 表示最顶层的浏览器对话框。
- parent 表示包含当前对话框的父对话框。
- opener 表示打开当前对话框的父对话框。
- self 表示当前对话框
- screen 表示用户屏幕,提供屏幕尺寸,颜色深度等信息;
- navigator 表示浏览器对象,用于获得与浏览器相关的信息。
2、window对象的方法
- alert() 弹出一个警告对话框
- confirm() 在确认对话框显示指定的字符串;
- prompt() 弹出一个提示对话框;
- open() 打开新浏览器对话框并且显示由URL或名字引用的文档,并设置创建对话的属性;
- close() 关闭被引用的对话框;
- scrollTo(x,y)把对话框滚动到指定的坐标;
- setTimeout(timer)在指定毫秒数过后,对传递的表达式求值;
- setinterval(interval) 指定周期性执行代码;
- moveTo(x,y)将对话框移动到指定坐标处;
- resizeTo(x,y)设置对话框的大小;
- print() 相当于浏览器工具栏的“打印”按钮;
二、window对象的使用
window对象可以直接调用其方法和属性;
语法格式:
window.属性名
window.方法名(参数列表)
在实际运用中,js允许使用一个字符串来给窗口命名,也可以使用一些关键字来代替某些特定的窗口,例如:使用“parent”代表父级窗口。
语法格式:
parent.属性名
parent.方法名(参数列表)
1、对话框
响应用户需要而弹出的对话框
1、利用window对象的alert()方法可以弹出一个警告框,并且在警告框内可以显示提示字符串文本。
语法格式:window.alert(str) str:显示的提示字符串
<body onload="al()">
<script>
function al(){
window.alert("我是警告对话框呀!");
}
</script>
</body>2、确认对话框
confirm()方法用于弹出一个确认对话框;
语法格式:
window.confirm(question)
question :显示提示的问题
var boo1 = window.confirm("确定要关闭我这个确定窗口吗?");
if(boo1 == true){
window.close();
}3、提示对话框
利用prompt()方法可以在浏览器窗口中弹出一个提示框
语法格式:window.prompt(str1,str2) str1:指定要被显示的信息;str2:指定输入框的值;
<script>
function pro(){
var message = document.all("message");
message.value = window.prompt(message.value,"返回的信息");
}
</script>
<input id="message" type="text" size="40" value="请在此输入信息" />
<br /><br />
<input type="button" value="显示对话框" onclick="pro()" />4、打开与关闭窗口
语法格式:WindowVar = window.open(url,windowname[,location]);
WindowVar:当前打开窗口的句柄;
url:目标窗口的url;
windowname:window对象的名称
location:打开窗口的参数;
语法格式:WindowVar = window.open(url,windowname[,location]);
WindowVar:当前打开窗口的句柄;
url:目标窗口的url;
windowname:window对象的名称
location:打开窗口的参数;<form name="form1" method="post" action="">
<input type="button" name="button" value="关闭子窗口" onclick="newclose()" />
</form>
<script>
var win;
win = window.open("new.html","new","width=300,height=200");
function newclose(){
win.close();
}
</script>5、控制窗口
(1)移动窗口
moveTo()方法:可以将窗口移动到指定坐标(x,y)处;
语法格式:window.moveTo(x,y) x:窗口左上角的x的坐标;y:窗口左上角y的坐标;resizeTo()可以将窗口改变成指定(x,y)大小;
语法格式:window.resizeTo(x,y) x:窗口的水平宽度;y:窗口的垂直宽度;screen对象:是JavaScript最的屏幕对象,反映了当前用户的屏幕设置;
属性有:
- width 用户整个屏幕的水平尺寸,以像素为单位;
- height 用户整个屏幕的垂直尺寸,以像素为单位;
- pixelDepth 显示器的每个像素的位数;
- colorDepth 返回当前颜色设置所用的位数;
- availWidth 返回窗口内容区域的水平尺寸,亿像素为单位;
- availHeight 返回窗口内容区域的垂直尺寸,以像素为单位;
</head>
<body onresize=resizeTo(300,300)>
<script>
window.resizeTo(300,300); //指定窗口改变的大小
window.moveTo(0,0); //将窗口移动到指定坐标处;
inter = setInterval("go()",1);
var aa = 0;
var bb = 0;
var a = 0;
var b = 0;
function go(){
try{
if(aa == 0)
a = a+2;
if(a>screen.availWidth-300)
aa = 1;
if(aa == 1)
a = a - 2;
if(a == 0)
aa = 0;
if(bb == 0)
b = b+2;
if(b>screen.availHeight -300)
bb = 1;
if(bb == 1)
b = b-2;
if(b == 0)
bb = 0;
window.moveTo(a,b);
}catch(e){}
}
</script>(2)窗口滚动
利用window对象的scroll()方法可以指定窗口的当前位置,从而实现窗口滚动效果;
语法格式:scroll(x,y); x:屏幕的横向坐标;y:屏幕的纵向坐标;三种方法:
window.scroll(x,y)
window.scrollTo(x,y)
window.scrollBy(x,y) x的值为正向右滚动,为负向左滚动;y的值为负向上滚动,为正向下滚动;
<table height="77" cellpadding="2" cellspacing="2" width="777" align="center" border="0">
<tr>
<td style="color: #666;" align="center"><img src="img/prpject.jpg" width="600px" height="2000px">
</td>
</tr>
</table>
<script>
var position = 0;
function scroller(){
if(true){
position++;
scroll(0,position);
clearTimeout(timer);
var timer = setTimeout("scroller()",10);
}
}
scroller();
</script>(3)改变窗口大小;
window()对象的resizeBy()方法可以实现将当前窗口改变指定的大小(x,y),当x、y、、的值大于0时为扩大,小于0时为缩小;
语法格式:window.resizeBy(x,y) //x为放大或缩小的水平宽度,y为放大或缩小的垂直宽度<script>
var winheight,winsize,x;
function openwin(){
winheight = 100;
winsize = 100;
x = 5;
win2 = window.open("clone.html","","scrollbars='no'");
win2.moveTo(0,0);
win2.resizeTo(100,100);
resize();
}
function resize(){
if(winheight>=screen.availHeight-3)
x = 0;
win2.resizeBy(5,x);
winheight += 5;
winsize += 5;
if(winsize >= screen.width - 5){
winheight = 100;
winsize100;
x=5;
return;
}
setTimeout("resize()",50);
}
</script>
<a href="javascript:openwin()">打开一个自动改变大小的窗口</a>
</body>(4)控制窗口状态栏
status()方法:主要功能是获取或设置浏览器窗口中状态栏的当前显示信息;
语法格式:window.status = str;l
defaultstatus()方法:window.defaultstatus = str;
(5)访问窗口历史
利用history对象实现访问窗口历史,history对象是一个只读的URL字符串数组;该对象主要用来存储一个最近所访问网页的URL地址的列表。
语法格式:[window.]history.property|method([parameters])
- length 历史列表的长度,用于判断列表中的入口数目;
- curent 当前文档的URL
- next 历史列表的下一个URL
- previous 历史列表的前一个URL
方法:back()退回前一页
forward()重新进入下一页
go() 进入指定的网页
<a href="javascript:window.history.forword();">forword</a>
<a href="javascript:window.history.back();">back</a><a href="javascript:window.history.forword();">forword</a>
<a href="javascript:window.history.back();">back</a> <a href="javascript:window.history.go(window.history.length-1);">末尾</a> 访问窗口历史
(6)设置超时
setTimeout(要执行的代码,以毫秒为单位的时间);
在超时事件未执行前可以中止该超时设置,使用window对象的clearTimeout()方法实现。
语法格式:clearTimeout(timerId);
(7)窗口事件
- 通用窗口事件
window。通用事件名 = 要执行的JavaScript代码;
onfocus事件 当浏览器窗口获得焦点时激活
onblur事件 浏览器窗口失去焦点时激活
onload事件 当文档完全载入窗口时触发,但需注意。事件并非完全同步
onunload 当文档未载入时触发
onresize 当用户改变窗口大小时触发
onerror事件 当出现JavaScript错误时,触发一个错误处理事件
- 扩展窗口事件
onafterprint 窗口打印后触发
onbeforeprint 窗口被打印或被打印预览之前激活
onbeforeunload 窗口未被载入之前触发,发生于onunload事件之前
onhelp 当按帮助键(通常f1)被按下时触发。
onscroll 滚动条往任意方向滚动时触发。
onresizeend 调整大小的进程结束时激活,
onresizestart 调整大小的进程开始时激活,
案例:
<script>
var flag = 0;
var timeID;
function beg(){
var i =form1.num.value;
i++;
form1.num.value = i;
timeID = setTimeout("beg()",1000);
}
function sta(){
if(flag == 0){
beg();
flag = 1;
}
}
function pau(){
clearTimeout(timeID);
flag = 0;
}
</script>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="num" size="1" value="0" />
<input type="button" name="start" value="开始计时" onclick="sta()" />
<input type="button" name="pause" value="暂停计时" onclick="pau()" />
</form>