第8章 BOM
BOM即浏览器对象模型。
8.1 window对象
BOM的核心对象是window,它表示浏览器的一个实例。
8.1.1 全局作用域
< script type = "text/javascript" >
//全局作用域中定义了一个变量age和一个函数setAge()
//它们被自动归在了window对象名下。
var age = 29 ;
function sayAge () {
alert ( this . age );
}
alert ( window . age );
sayAge ();
window . sayAge ();
//定义全局变量和在window对象上直接定义属性还是有一点差别的
/**
* 全局变量不能通过delete操作符删除
* 但是直接在window对象上定义的属性可以
*/
var name = "nick" ;
window . color = "red" ;
delete window . name ;
//false
delete window . color ;
//true
alert ( window . name );
//nick
alert ( window . color );
//undefined
/**
* 尝试访问未声明的变量会抛出错误,但是通过查询window对象,
* 可以知道某个可能未声明的变量是否存在
*/
//var newValue=oldValue;//错误,因为oldValue未定义
//newValue的值是undefined
var newValue = oldValue ;
< /script>
8.1.2 窗口关系和框架
8.1.3 窗口位置
用来确定和修改window对象位置的属性和方法有很多。
IE、Safari、Opera和Chrome都提供了screenLeft和ScreenTop属性,分别用来表示窗口相对于屏幕左边有上边的位置。 Firfox则在screenX和screenY属性,提供相同的窗口位置信息,Safari和Chrome也同时支持这两个属性。Opera虽然也支持screenX和screenY属性,但与screenLeft和screenTop属性并不对应。
< script type = "text/javascript" >
var leftPos = ( typeof window . screenLeft == "number" ) ? window . screenLeft : window . screenX ;
var topPos = ( typeof window . screenTop == "number" ) ? window . screenTop : window . screenY ;
alert ( leftPos );
alert ( topPos );
/**
* moveTo()接受的是新位置的x和y坐标
*
* moveBy()接收的是在水平和垂直方向移动的像素
*/
//移动 将窗口移动到屏幕左上角
window . moveTo ( 0 , 0 );
//将窗向下移动100像素
window . moveBy ( 0 , 100 );
//将窗口移动到(200,300)
window . moveTo ( 200 , 200 );
//将窗口向左移动50像素
window . moveBy ( - 50 , 0 );
< /script>
8.1.4 窗口大小
8.1.5 导航和打开窗口
8.1.6 间歇调用和超时调用
8.1.7 系统对话框
alert()
confirm()
prompt()
< script type = "text/javascript" >
if ( confirm ( "Are you sure?" )){
alert ( "I'm so glad you're sure!" );
} else {
alert ( "I'm sorry to hear you're not sure" );
}
var result = prompt ( "What's your name?" , "Michael" );
if ( result != null ){
alert ( "Welcome " + result );
}
//显示打印对话框
window . print ();
//显示查找对话框
window . find ();
< /script>
8.2 location对象
location是最有用的BOM对象之一,它提供了当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象是一个特别的对象,因为它既是window对象的属性,也是doucument对象的属性;window.location和document.location引用的是同一个对象。
8.2.1 查询字符串参数
8.2.2 位置操作
8.3 navigator对象
8.3.1 检测插件
8.3.2 注册处理程序
8.4 screen对象
8.5 history对象
November 9, 2021
October 14, 2018