js 学习笔记---BOM
window对象
1、 window 对象是Global对象,在全局作用域中声明的变量和函数都可以通过window.来访问。跟直接在window上添加属性效果一样。唯一的区别就是delete时,如果是全局变量会返回false,而window的属性会返回true(但是变量依然存在,跟没删除没区别)。所以,全局变量不可以delete,只有局部变量可以通过delete销毁。
2、尝试访问未定义的变量时会抛出异常,但是可以通过window进行异常属性查询。
3、top永远表示最外层框架,parent是直接上级,有时等于top,window是窗口本身始终=self。有时top=parent=window=self;
4、窗口位置:firefox中是screenX和screenY,其他浏览器中是screenLeft和screenTop。但是在IE和opera中保存的是可视区域相对于屏幕的位置,而其他浏览器则是浏览器相对于屏幕的位置。会有 0,0。
5、窗口大小:跨浏览器确定一个窗口的大小不是一件简单的事。innerWidth,innerHeight,outerWidth,outerHeight有的浏览器返回相同的值,有的是窗口可可视区域的值。但是可以跨浏览器确定可视区域的大小。(IE中有4像素的差别,长宽都会)。
6、定时执行:间歇和超时调用,setInterval()对应clearInterval(); setTimeout()对应clearTimeout(); 建议少使用间歇调用,因为后一个间歇调用可能会在前一个间歇调用结束前执行(如果调用执行时间过长),可以通过setTimeout实现间歇调用的效果。
7、通过window.print()和window.find()可以实现打印和查找的功能。
location对象
navigator对象
screen对象
history对象
测试代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style>
*{ padding:0px; margin:opx; }
</style>
</head> <body>
<script type="text/javascript" language="javascript">
var age =10;
function sayAge(){
alert(this.age);
var v = {id:23,name:'www'};
alert(v.id+' : '+ v.name);
delete v.id;
alert(v.id+' : '+ v.name);
}
window.sayAge();
window.name = 'wch';
alert(delete window.age);
alert(delete window.name);
alert(delete age);
alert(window.age + ' : '+ window.name); if(v){ // 异常
alert('错误!');
}
if(!window.v){
alert('进行一次属性查询,如果未定义就不会跑异常了!');
} alert(top == parent);
alert(top == window.parent.parent);
alert(top == self); var leftPos = (typeof window.screenLeft == 'number') ? window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop == 'number' ) ? window.screenTop : window.screenY;
alert(leftPos + ' : '+ topPos); var pageWidth = window.innerWidth;
var pageHeight = window.innerHeight;
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;
}
}
alert(pageWidth + ' : ' + pageHeight); alert(location.href + ' : '+location.search+' : '+ location.port); alert(navigator.cookieEnabled + ' : '+ navigator.javaEnabled()+' : '+navigator.onLine +' : '+navigator.platform) alert(screen.height + ' : '+screen.width)
</script>
</body>
</html>
最新文章
- Python中的几种数据类型
- sphinx网址
- JS 对象属性相关--检查属性、枚举属性等
- oracle冷备份后恢复
- android开发中eclipse里xml开发的自动提示和使用帮助快捷键提示
- Android之点击切换图片
- HTTP Header 入门详解
- 在ubuntu中获得root权限
- nuc950支持nand的mtd驱动的kernel修改
- css3标签
- (转)jQuery插件开发模式
- codeforces 464B Restore Cube
- PHP - Windows安装Pear
- 慎重使用MySQL auto_increment
- 关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解
- .net 面试题
- EF错误
- iOS OC Swift3.0 TableView 中tableviewcell的线左边不到边界
- java 验证字符串是否包含中文字符
- openstack的网络、子网、端口的关系