BOM:window操作对象
一.间隔执行与延迟执行
间隔执行一段代码(函数):window.setInterval("执行的代码",间隔毫秒数);
<html> <body> <span id="s1"></span><br /> <span id="s2"></span><br /> <input type="button" value="在这停住" onclick="stop()" /> </body> </html> <script> var c1 = 0; var c2 = 0; var arr = Array(); arr.push(window.setInterval("sit1()", 500)); arr.push(window.setInterval("sit2()", 500)); function sit1() { document.getElementById('s1').innerText = ++c1; } function sit2() { document.getElementById('s2').innerText = ++c2; } function stop() { for(var i in arr) { window.clearInterval(arr[i]); } } </script>
清除间隔执行:window.clearInterval(间隔的ID);
延迟执行代码(函数):window.setTimeout("要执行的代码",延迟毫秒数);
<script> window.setTimeout(sto,3000); 或者window.setTimeout("sto()",3000) function sto(){ alert('123'); window.setTimeout(sto,3000); 死循环没有返回值 } </script>
清除延迟:window.clearTimeout(延迟的ID)。
二.页面跳转类型
第一种(最常用):window.location.href = "http://www.baidu.com";
第二种(IE专用):window.navigate('http://www.baidu.com');
第三种: window.open('http://www.baidu.com','_blank','toolbar=no')
第1部分写要打开的页面地址;
第2部分写打开的方式,_blank在新窗口打开;_self在本窗口打开;
第3部分是控制打开的窗口,可以写多个用空格隔开;
toolbar = no新打开的窗口无工具条
menubar = no无菜单栏 status = no无状态栏
width = 100; height = 100 宽度高度
left = 100 打开的窗口距离左边多少距离
resizable = no 窗口大小不可调
scrollbars = yes 出现滚动条
location = yes 有地址栏
三.页面刷新:window.location.reload();
四.页面滚动:window.scrollTo(x,y), y代表纵向滚动
五.页面调整:window.resizeTo(宽,高); 调整页面宽和高;
六.window.history对象(历史记录, 通过历史记录可以操作页面前进或者后退)
window.history.back(); 后退
window.history.forward();前进
window.history.go(n);n是正数代表前进n个页面, n是负数代表后退n个页面。
关于获取各种浏览器可见窗口大小:
<script>
function getInfo() {
var s = "";
s = " 网页可见区域宽:" document.body.clientWidth;
s = " 网页可见区域高:" document.body.clientHeight;
s = " 网页可见区域宽:" document.body.offsetWidth " (包括边线和滚动条的宽)";
s = " 网页可见区域高:" document.body.offsetHeight " (包括边线的宽)";
s = " 网页正文全文宽:" document.body.scrollWidth;
s = " 网页正文全文高:" document.body.scrollHeight;
s = " 网页被卷去的高(ff):" document.body.scrollTop;
s = " 网页被卷去的高(ie):" document.documentElement.scrollTop;
s = " 网页被卷去的左:" document.body.scrollLeft;
s = " 网页正文部分上:" window.screenTop;
s = " 网页正文部分左:" window.screenLeft;
s = " 屏幕分辨率的高:" window.screen.height;
s = " 屏幕分辨率的宽:" window.screen.width;
s = " 屏幕可用工作区高度:" window.screen.availHeight;
s = " 屏幕可用工作区宽度:" window.screen.availWidth;
s = " 你的屏幕设置是 " window.screen.colorDepth " 位彩色";
s = " 你的屏幕设置 " window.screen.deviceXDPI " 像素/英寸";
alert(s);
}
</script>
递归算法:
递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。
例:斐波那契数列(0,1,2,3,5,8,13,21,.....)输入第几个数,输出这个这个数的值;
<script> function dg(n) { if(n == 2) { return 1 } else if(n == 1) { return 0; } else { return dg(n - 1) + dg(n - 2); } } var x = parseInt(prompt('第几个数')); alert(dg(x)); </script>