var a = "window.a"; //全局变量 function f () { //全局函数 console.log(a); } console.log(window.a); //返回字符串“window.a” window.f(); //返回字符串“window.a”
var user = prompt("请输入您的用户名"); if (!! user) { //把输入的信息转换为布尔值 var ok = confirm ("您输入的用户名为:\n" + user + "\n 请确认。"); //输入信息确认 if (ok) { alert ("欢迎您:\n" + user); } else { //重新输入信息 user = prompt ("请重新输入您的用户名:"); alert ("欢迎您:\n" + user); } } else { //提示输入信息 user = prompt ("请输入您的用户名:"); }这 3 个方法仅接收纯文本信息,忽略 HTML 字符串,只能使用空格、换行符和各种符号来格式化提示对话框中的现实文本。提示,不同的浏览器对于这 3 个对话框的显示效果略有不同。
window.alert = function (title, info) { var box = document.getElementById ("alert_box"); var html = '<dl><dt>' + title + '</dt><dd>' + info + '</dd><\/dl>'; if (box) { box.innerHTML = html; box.style.display = "block"; } else { var div = document.createElement("div"); div.id = "alert_box"; div.style.display = "block"; document.body.appendChild (div); div.innerHTML = html; } } alert ("重写alert()方法","这仅是一个设计思路,还可以进一步设计");下面是 CSS样式:
<style type="text/css"> #alert_box { position: absolute; left: 50%; top: 50%; width: 400px; height: 200px; display:none;} #alert_box dl { position: absolute; left: -200px; top: -100px; width: 400px; height: 200px; border: solid 1px #999; border-radius: 8px; overflow: hidden; } #alert_box dt { background-color: #ccc; height: 30px; text-align: center; line-height: 30px; font-weight: bold; font-size: 15px; } #alert_box dd { padding: 6px; margin: 0; font-size: 12px; } </style>显示效果如下:
window.open (URL, name, features, replace)
参数列表如下:特征 | 说明 |
---|---|
fullscreen = yes | no | 1 | 0 | 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口同时处于剧院模式 |
height = pixels | 窗口文档显示区的高度。单位为像素。 |
left = pixels | 窗口的 x 坐标。单位为像素。 |
location = yes | no | 1 | 0 | 是否显示地址字段。默认是 yes。 |
menubar = yes | no | 1 | 0 | 是否显示菜单栏。默认是 yes。 |
resizable = yes | no | 1 | 0 | 窗口是否可调节尺寸。默认是 yes。 |
scrollbars = yes | no | 1 | 0 | 是否显示滚动条。默认是 yes。 |
status = yes | no | 1 | 0 | 是否添加状态栏。默认是 yes。 |
toolbar = yes | no | 1 | 0 | 是否显示浏览器的工具栏。默认是 yes。 |
top = pixels | 窗口的 y 坐标 |
width = pixels | 窗口的文档显示区的宽度。单位为元素。 |
win = window.open(); //打开新的空白窗口 win.document.write ("<h1>这是新打开的窗口</h1>"); //在新窗口中输出提示信息 win.focus (); //让原窗口获取焦点 win.opener.document.write ("<h1>这是原来窗口</h1>"); //在原窗口中输出提示信息 console.log(win.opener == window); //检测window.opener属性值使用 window 的 close() 方法可以关闭一个窗口。例如,关闭一个新创建的 win 窗口可以使用下面的方法实现。
win.close;如果在打开窗口内部关闭自身窗口,则应该使用下面的方法。
window.close;使用 window.closed 属性可以检测当前窗口是否关闭,如果关闭则返回 true,否则返回 false。
var url = "task.lmcjl.com"; //要打开的网页地址 var features = "height=500, width=800, top=100, left=100, toolbar=no, menubar=no, scrollbars=no,resizable=no, location=no, status=no"; //设置新窗口的特性 //动态生成一个超链接 document.write('<a href="task.lmcjl.com" target="newW">切换到C语言中文网首页</a>'); var me = window.open(url, "newW", featrues); //打开新窗口 setTimeout (function () { //定时器 if (me.closed) { console.log("创建的窗口已经关闭。"); } else { me.close(); } }, 5000); //半秒钟之后关闭该窗口
方法 | 说明 |
---|---|
setInterval() | 按照执行的周期(单位为毫秒)调用函数或计算表达式 |
setTimeout() | 在指定的毫秒数后调用函数或计算表达式 |
clearInterval() | 取消由 setInterval() 方法生成的定时器 |
clearTimeout() | 取消由 setTimeout() 方法生成的定时器 |
var o = setTimeout(code, delay);
参数 code 表示要延迟执行的字符串型代码,将在 Windows 环境中执行,如果包含多个语句,应该使用分号进行分隔。delay 表示延迟时间,以毫秒为单位。<p>段落文本</p> <script> var p = document.getElementsByTagName("p") [0]; p.onmouseover = function (i) { setTimeout (function () { console.log(p.tagName); }, 500); } </script>setTimeout() 方法的第一个参数虽然是字符串,但是也可以是一个函数。一般建议把函数作为参数传递给 setTimeout() 方法,等待延迟调用。
var o = document.getElementsByTagName("body") [0].childNodes; //获取body下所有子元素 for (var i = 0; i < o.length; i ++){ //遍历元素集合 o[i].onmouseover = function (i) { //注册鼠标经过事件处理函数 return function () { //返回闭包函数 f (o[i]); //调用函数f,并传递当前对象引用 } } (i); //调用函数并传递循环序号,实现在闭包中存储对象序号值 } function f (o) { //延迟处理函数 var out = setTimeout (function () { console.log(o.tagName); //显示当前元素的名称 }, 500} //定义延迟半秒钟后执行代码 }这样当鼠标指针移过每个页面元素时,都会在延迟半秒钟后弹出一个提示对话框,提示元素名称。
var o = document.getElementsByTagName("body") [0].childNodes; for (var i = 0; i < o.length; i ++ ) { o[i].onmouseover = function (i) { //为每个元素注册鼠标移过时事件延迟处理函数 return function () { f (o[i]); } } (i); o[i].onmouseover = function (i) { //为每个元素注册鼠标移出时清除延迟处理函数 return function () { clearTimeout (o[i].out); //清除已注册的延迟处理函数 } } (i); } function f (o) { //把延迟处理定时器存储在每个元素的 out 属性中 o.out = setTimeout (function () { nsole.log(o.tagName); }, 500); }如果希望反复执行 setTimeout() 方法中包含的代码,可以在 setTimeout() 方法中包含对自身的调用,这样就可以把自身注册为可以被反复执行的方法。
<input type="text" /> <script> var t = document.getElementsByTagName("input") [0]; var i = 1; function f () { var out = setTimeout( //定义延迟执行的方法 function () { //延迟执行函数 t.value = i ++; //递加数字 f (); //调用包含setTimeout()方法的函数 }, 1000); //设置每秒执行一次调用 if (i > 10) { //如果超过10次,则清除执行,并弹出提示信息 clearTimeout (out); console.log("10秒钟已到"); } } f(); //调用函数 </script>
var o = setInterval (code, interval)
该方法的用法与 setTimeout() 方法基本相同,其中参数 code 表示要周期执行的代码字符串,参数 interval 表示周期执行的时间间隔,以毫秒为单位。var o = setInterval(functioin, interval[,arg1, arg2, ... argn])
<input type="text" /> <script> var t = document.getElementByTagName("input") [0]; var i = 1; var out = setInterval (f, 1000); //定义周期性执行的函数 function f () { t.value = i ++; if (i > 10) { //如果重复执行10次 clearTimeout (out); //则清除周期性调用函数 console.log("10秒钟已到"); } } </script>setTimeout() 方法主要用来延迟代码执行,而 setInterval() 方法主要实现周期性执行代码。它们都可以设计周期性动作,其中 setTimeout() 方法适合不定时执行某个动作,而 setInterval() 方法适合定时执行某个动作。
<! DOCTYPE html PUBLIC "-// W3C// DTD XHTML 1.0 Frameset // EN "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>框架集</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <frameset rows="50%,50%" cols="*" frameborder="yes" border="1" framespacing="0"> <frameset rows="*" cols="33%,*,33%" framespacing="0" frameborder="yes" border="1"> <frame src="left.htm" name="left" id="left" /> <frame src="middle.htm" name="middle" id="middle"> <frame src="right.htm"name="right" id="right"> </frameset> <frame src="bottom.htm" name="bottom" id="bottom"> </frameset> <noframes><body></body></noframes> <html>以上代码创建了一个框架集,其中前三个框架居上,后一个框架居下。
属性 | 说明 |
---|---|
top | 如果当前窗口是框架,它就是对包含这个框架的顶级窗口的 window 对象的引用。注意,对于嵌套在其他框架中的框架,top 未必等于 parent |
parent | 如果当前的窗口是框架,它就是对窗口中包含这个框架的父级框架引用 |
window | 自引用,是对当前 window 对象的引用,与 self 属性同义 |
self | 自引用,是对当前 window 对象的引用,与 window 属性同义 |
frames[] | window 对象集合,代表窗口中的各个框架(如果存在) |
name | 窗口的名称。可被 HTML 标签 <a> 的 target 属性使用 |
opener | 对打开当前窗口的 window 对象的引用 |
window.onload = function () { document.body.onclick = f; } var f = function () { //改变第三个框架文档的背景色为红色 parent.frames[2].document.body.style.backgroundColor = "red"; }
function left () { alert ("left.htm"); }然后,就可以在第 2 个框架的 middle.htm 文档中调用该函数。
window.onload = function () { document.body.onclick = f; } var f = function () { parent.frames[0].left(); //调用第一个框架中的函数left() }
window.onload = function () { timer = window.setInterval("jump()", 1000); } function jump () { window.resizeTo (200, 200); x = Math.ceil (Math.random() * 1024); y = Math.ceil (Math.random() * 760); window.moveTo(x, y); }
本文链接:http://task.lmcjl.com/news/15901.html