窗体(Window)

首页 > JavaScript浏览器对象 > 窗体(Window)

目录

■ 一览

alert(), blur(), clearInterval(), clearTimeout(), clientInformation, close(), closed, confirm(), defaultStatus, dialogArguments, dialogHeight, dialogLeft, dialogTop, dialogWidth, execScript(), focus(), moveBy(), moveTo(), name, open(), opener, parent, print(), prompt(), resizeBy(), resizeTo(), returnValue, scroll(), scrollBy(), scrollTo(), self, setInterval(), setTimeout(), showHelp(), showModalDialog(), status, top, window

■ 窗体对象

window

代表窗体的对象。<script>~</script> 之间可以省略“window.”,下面的 window.top 和 window.parent 可以写成 top 和 parent。

window.self
window.top
window.parent

self 代表窗体自己,top 代表窗体被框架分割时的最顶层,parent 代表当前框架的上一层的父窗体,name 指向拥有此名字的窗体或框架。在下面 name 的例子里,从 sub 框架指向 main 框架的名字是 window.top.main 或 window.parent.main。

window.opener

代表打开此窗体的父窗体对象,如果父窗体里有 <form name="FORM1"> 表单的 <input type="text" name="TEXT1"> 元素的话,用下面的代码可以设定此元素的值。

window.opener.document.FORM1.TEXT1.value = "ABCDEFG";
window.name

用 <frame> 的 name 属性指定窗体对象。比如下面的例子里,窗体被分割成两个框架,分别可以用 top.sub、top.main 指向它们。

<frameset cols="100,*">
 <frame name="sub" src="sub.html">
 <frame name="main" src="main.html">
</frameset>

■ 对话框

window.alert(message)

弹出内容为 message 的警告对话框。换行使用 \n 。很简单就能显示各种信息,一般在调试程序的时候也可以用它来显示各种值。

window.alert("发生了XX错误!");
window.confirm(message)

弹出内容为 message 的确认对话框。按下 [OK] 按钮返回true,按下取消按钮返回false。

if (window.confirm("确定吗?")) {
   document.F1.submit();
}
window.prompt(message [, default])

弹出可输入文字的对话框。message 为对话框的说明内容,default 为输入框的初期值。返回值为输入的内容,按下取消按钮时返回 null。

pwd = window.prompt("请输入密码。", "");
window.showModalDialog(url [, arg [, opt]])
window.showModelessDialog(url [, arg [, opt]])
window.dialogArguments
window.dialogHeight
window.dialogWidth
window.dialogLeft
window.dialogTop
window.returnValue

显示以 url 为内容的对话框。参数 arg 可以为数值、字符串、数组等。opt 可以指定 dialogWidth:px(对话框宽度), dialogHeight:px(对话框高度,不小于100px), dialogTop:px(离屏幕上的距离), dialogLeft:px(离屏幕左的距离), center:(yes|no)(是否居中,默认yes,但仍可以指定高度和宽度), dialogHide:(yes|no)(在打印或者打印预览时对话框是否隐藏,默认为no), edge:(sunken|raised)(指明对话框的边框样式,默认为raised), resizable:(yes|no)(是否可被改变大小,默认no), scroll:(yes|no)(是否显示滚动条,默认为yes), status:(yes|no)(是否显示状态栏,默认为yes[ Modeless]或no[Modal]), unadorned:(yes|no)(默认为no)。用 dialogArguments 可以取得对话框传递的参数。关闭对话框时 returnValue 中设定的值会成为 showModalDialog() 的返回值。

args = new Array();
args[0] = "AAA";
args[1] = "BBB";
val = showModalDialog("dlg.html", args,
    "dialogHeight:100px;dialogWidth:300px");
parent.html
<script>
    var obj = new Object();
    obj.name='jsobj1';
    window.showModalDialog('model.html',obj,'dialogWidth=200px;dialogHeight=100px');
</script>
model.html
<script>
    var obj = window.dialogArguments
    alert('您传递的参数为:' + obj.name)
</script>
parent.html
<script>
    str =window.showModalDialog('model.html',,'dialogWidth=200px;dialogHeight=100px');
    alert(str);
</script>
model.html
<script>
    window.returnValue='http://www.monmonkey.com/';
</script>

■ 窗体控制

window.focus()
window.blur()

focus() 可以使此窗体获得焦点。blur() 可以使此窗体失去焦点。

window.scroll(x, y)
window.scrollTo(x, y)
window.scrollBy(x, y)

使画面跳转到坐标 xy 的位置。scroll() 和 scrollTo() 是绝对坐标,scrollBy() 是从现在位置开始的相对坐标。scroll() 是以前的东西,为了兼容性才保留下来。

window.resizeTo(x, y)
window.resizeBy(x, y)

改变窗体的大小为 xy。resizeTo() 是绝对坐标,resizeBy() 是从现在位置开始的相对坐标。一般无法小于100×100。

window.moveTo(x, y)
window.moveBy(x, y)

把窗体移动到 xy 的位置。moveTo() 是绝对坐标、moveBy() 是从现在位置开始的相对坐标。

window.print()

打印。

■ 窗体信息

window.name

返回窗体名字的字符串。(<frame>标签的 name 属性或 window.open()函数的第二个参数指定的名字)

alert(window.name);
alert(top.sub.name);

■ 定时

window.setTimeout(script, msec)
window.setTimeout(script, msec, lang)
window.clearTimeout(timeoutID)

setTimeout() 是在 msec 毫秒后执行指定的程序。script 的部分为 JavaScript 代码。lang 的部分为语言种类("JScript"、"JavaScript"、"VBScript")。clearTimeout() 用来解除 setTimeout() 设定的定时处理。

id = setTimeout("func('ABC')", 1000);
id = setTimeout("func('" + arg + "')", 1000);  // 传入arg的值
id = setTimeout("func('ABC')", 1000, "JavaScript");
clearTimeout(id);

想要定期重复执行程序,可以像下面这样写,也可以用后面讲到的 setInterval()。

<html>
<head>
<title>重复代码</title>
<script type="text/javascript">
<!--
function func() {
    alert("TEST");
    setTimeout("func()", 5000);
}
// -->
</script>
</head>
<body onload="func()">
  :
</body>
</html>
window.setInterval(script, msec)
window.setInterval(script, msec, lang)
window.clearInterval(intervalID)

类似 setTimeout()、clearTimeout(),以 msec 毫秒为间隔,定期重复执行指定的程序。

■ 打开网页

window.open(url, name [, style])

打开窗体。返回被打开窗体的窗体对象。和 document.open() 不是一个东西。

w = window.open("test.html", "Test", "width=200,height=200");

url 指定要打开的窗体的网址。

name 指定要打开的窗体的名字,可以是 <frame> 标签的 name 属性指定的名字,或是其他的 open() 生成的窗体名(当指定的窗体名不存在时,会生成一个以此 name 命名的新窗体)。下面这些名字有特殊的意义。

名字 意义
_top 窗体被框架分割时,最顶层的框架(窗体)。
_blank 没名字的新窗体。
_self 框架(窗体)本身。
_parent 窗体被框架分割时,上一层的框架(窗体)。

style 用来指定窗体的样式。n 是像素值,yes | no 是 yes 和 no 二选一。指定复数样式的时候,可以像 width=100,height=50,menubar=no 这样用逗号隔开。

样式 意义
channelmode=yes|no 是否启用通道模式。默认为no。
directories=yes|no 是否显示链接栏。默认为yes。
fullscreen=yes|no 是否以全屏模式打开。默认为no。此属性可能会隐藏浏览器的标题栏和菜单,ALT+F4可以关闭窗口。
height=n 指定窗体的高度。
left=n 指定窗口距画面左边的距离。值必须大于或者等于0。。
location=yes|no 是否显示地址栏。默认为yes。
menubar=yes|no 是否显示菜单栏。默认为yes。
resizable=yes|no 可否改变窗体大小。默认为yes。
scrollbars=yes|no 是否显示横向或者纵向滚动条。默认为yes。
status=yes|no 是否显示状态栏。默认为yes。
titlebar=yes|no 是否显示标题栏。默认为yes。
toolbar=yes|no 是否显示工具栏,包括如前进、后退、停止等按钮。默认为yes。
top=n 指定窗口距画面顶部的距离。值必须大于或者等于0。
width=n 指定窗体的宽度。

各浏览器的支持程度如下。

  IE6 IE7 IE8 Firefox Safari Chrome Opera
channelmode 不支持 不支持 不支持 不支持 不支持 不支持 不支持
directories 不支持 不支持 不支持 不支持 不支持 不支持 不支持
fullscreen 支持 支持 支持 不支持 不支持 不支持 不支持
location 支持 支持 支持 不支持 7 支持 2 不支持 7 支持 8
menubar 支持 支持 1 支持 1 支持 1 支持 1 不支持 9 不支持 9
resizable 支持 支持 支持 不支持 10 不支持 10 不支持 10 不支持 10
scrollbars 支持 支持 支持 支持 不支持 11 不支持 11 支持
status 支持 支持 12 支持 不支持 13 支持 不支持 13 不支持 13
titlebar 不支持 不支持 不支持 不支持 不支持 不支持 不支持
toolbar 支持 支持 支持 支持 支持 2 不支持 14 不支持 14
top 支持 3 支持 1 支持 3 支持 4 支持 4 不支持 5 不支持 5
left 支持 3 支持 1 支持 3 支持 4 支持 4 不支持 5 不支持 5
width 支持 支持 支持 支持 支持 不支持 6 支持
height 支持 支持 支持 支持 支持 不支持 6 支持
top left 支持 3 支持 4 支持 3 支持 4 支持 4 不支持 5 不支持 5
width height 支持 支持 支持 支持 支持 4 支持 1 支持
top left width height 支持 支持 4 支持 3 支持 4 支持 4 支持 3 支持 4

上表中为各个浏览器对 features 各参数选项的支持程度,其中需要特殊说明的如下:

window.close()

关闭窗体。为了保证安全,关闭由自身窗口打开的子窗口时没有确认对话框,但是要关闭其他窗口时会弹出请求确认的对话框。

window.closed

检查窗体是否已被关闭,返回 True 或 False。

■ 其他

window.status
window.defaultStatus

status 是显示在状态栏上的内容。defaultStatus 是状态栏上没其他需要显示的内容的时候,显示的默认内容。要在 onMouseOver 等事件里改写状态栏的内容时,需要在此句柄的处理中返回 true。

<body onLoad="window.defaultStatus='欢迎来到猴子web入门'">
<a href="xx.html"
   onMouseOver="window.status='点这里会跳转到△△页面'; return true;">
   △△</a>
window.clientInformation

window.navigator 相同。

window.execScript(code [, lang])

code 中的内容当作 JScript 代码来执行。要当作 JavaScript 执行需要在 lang 中指定 "JavaScript"。window.execScript 方法不是所有浏览器都支持,需谨慎使用。若需要在其他不支持 window.execScript 方法的浏览器中达到类似的效果,可以使用 window.eval 方法。

window.showHelp(url [, id [, opt]])

显示 HTML 帮助文档。