JavaScript——驰骋网页的脚本执行者(9)
十四、浏览器对象模型(Bom)
Bom有这些常用对象:
Window:封装了浏览器整个窗口对象
Navigation:封装了浏览器的信息
Screen:封装了操作系统的屏幕信息
History:封装了浏览器访问历史信息
Location:封装了浏览器地址栏信息
1.location对象
location对象是最有用的BOM对象之一,提供了与当前窗口中加载文档的有关信息,还提供一些导航功能。location是个神奇的对象,既是window的对象也是document的对象。
console.log(window.location == document.location); //true
location对象有这些属性:
host:返回服务器名称和端口号
hostname:返回不带端口号的服务器名称
href:返回当前加载页面的完整URL
pathname:返回URL的目录和文件名
port:返回URL中指定的端口号
protocol:返回页面使用的协议
search:返回URL的查询字符串。这个字符串以问号开头
location对象有这些方法:
assign():参数为一个url,打开新url,并在浏览记录中生成一条记录
replace():参数为一个url,结果会导致浏览器地址位置改变,但不会在历史记录中生成新记录
reload():重新加载当前显示的页面,参数可以为boolean类型,默认为false,表示以最有效方式重新加载,可能从缓存中直接加载。如果参数为true,会强制从服务器中重新加载
给window.location; location.href设置为一个URL值,也会以该值调用assign()方法。以下三行代码效果相同:
window.location="http://www.baidu.com";
location.href="http://www.baidu.com";
location.assign("http://www.baidu.com");
2.history对象
该对象保存着用户上网的历史记录。出于安全方面的考虑,开发人员无法得知用户浏览过的URL,不过借由用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退前进,要注意的是,没有应用于History对象的公开标准,不过所有浏览器都支持该对象。它有这些属性和方法:
length:返回历史列表中的网址数(IE和Opera从0开始,而Firefox、Chrome和Safari从1开始)
back():加载history列表中的前一个URL
forward():加载history列表中的下一个URL
go():加载history列表中的某个具体页面,负数表示向后跳转,正数表示向前跳转
3.超时调用和间歇调用
JavaScript是单线程语言,但它可以通过超时值和间歇时间来调度代码在特定时刻执行:
setTimeout():表示超时调用,该方法包含两个参数,分别是要执行的代码和以毫秒表示的时间,结果返回一个数值ID,这个超时调用ID是计划执行代码的唯一标识符,可以通过clearTimeout(ID)来取消超时调用
setInterval():表示按照指定的时间间隔重复执行代码,直到间歇调用被取消或页面被卸载,该方法包含两个参数,分别是要执行的代码和以毫秒表示的时间,调用该方法也会返回一个间歇调用ID,可以通过clearInterval(ID)来取消间歇调用
还可以通过超时调用模拟间歇调用,例如:
var num = 0; var max = 10; function incrementNum(){ num ++; if(num < max){ alert(num); setTimeout(incrementNum,500); }else{ alert("Done"+num); } } setTimeout(incrementNum,500);
4.系统对话框
alert(),confirm(),prompt()方法可以调用系统对话框向用户显示消息。显示这些对话框的时候代码会停止执行,关掉这些对话框后代码又会恢复执行。
alert():提示框,该方法接收一个字符串参数并将其显示给用户。该对话框会包含指定的文本和一个OK按钮,主要用来显示警告信息,无返回值
confirm():确认对话框,该方法接收一个字符串参数并将其显示给用户。显示包含的指定文本和一个OK按钮以及Cancel按钮,该方法返回一个布尔值,true表示单击了OK,false表示单击cancel或者关闭按钮
prompt():会话框,提示用户输入一些文本。该方法接收两个参数,分别为要显示给用户的文本提示和文本输入域的默认值,显示包含的指定文本和一个OK按钮以及Cancel按钮,该方法返回用户的输入值