JavaScript入门教程:15.浏览器对象(BOM)



浏览器对象(BOM)

BOM:Browser Object Model,即浏览器对象模型,提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。
Browser对象:指BOM提供的多个对象,包括:Window、Navigator、Screen、History、Location等。
其中Window对象为顶层对象,其他对象都以Window对象为基础,window对象的属性和方法都可以省略不写window对象。

Window 对象

window对象主要用来控制由窗口弹出的对话框、打开窗口或关闭窗口、控制窗口的大小和位置等
窗口尺寸
1.内部尺寸(文档显示区)

window.innerHeight 
window.innerWidth  

2.外部尺寸(包括工具条的滚动条)

window.outerHeight	
window.outerWidth

开关窗口

window.open("URL","窗口名称","参数");

用于打开一个新的浏览器窗口或查找一个已命名的窗口。
参数常用的top,left ,width,height,scrollbars等。单位px是默认值,可以省去。

<script type="text/javascript">
	function openwindow(){
		window.open("http://www.onceair.com","","width=960px,height=540px")
	}
</script>
<input type="button" value="新建窗口" onclick="openwindow()">

对应关闭窗口即为

window.close("URL","窗口名称","参数");

窗口历史

使用浏览器当中,会经常使用浏览器中的“前进”和“后退”。其实浏览器都会帮我们保存浏览的历史(即窗口历史)。

history.go(num)	 

进入指定的网页,参数可为正负,对应着前和后页面

history.back(num)	

返回上一页

history.forward(num)	

进入下一页
注意,这种“上一页”与“下一页”是针对浏览器历史记录而言,而不是页面内容的“上一页”与“下一页”。

history.pushState(state, title, url)

用于在历史中添加一条记录,pushState()方法不会触发页面刷新,只是导致 History 对象发生变化,地址栏会有反应。

定时器

可以在一个设定的时间间隔之后执行代码,而不是在函数被调用后再执行。也就是可以自动执行。
1.单次执行

var 变量=setTimeout("需要执行的js语句",毫秒)

code为需要执行的js语句,通常为一句代码或一个函数。1000毫秒=1秒。

<script type="text/javascript">
	function timego(){
		var time1=setTimeout("document.getElementById('timenumber').value='1'",1000)
		var time2=setTimeout("document.getElementById('timenumber').value='2'",2000)
		var time3=setTimeout("document.getElementById('timenumber').value='3'",3000)
		var time4=setTimeout("document.getElementById('timenumber').value='4'",4000)
		var time5=setTimeout("document.getElementById('timenumber').value='5'",5000)
	}
</script>
<input type="button" name="" value="点击开始" onClick="timego()">
<input type="text" name="" value="" id="timenumber">
<p>随时间显示1至5</p>

2.重复执行

var 变量名abc = setInterval (code , time);

重复执行和单次执行使用比较类似,参数code可以是一段代码,也可以是一个调用的函数名.

<script type="text/javascript">
	var i=0
	function timego2(){
		var timex=setInterval(addnum,1000)
	}
    function addnum(){		
	    if (i<=9) {
		    i++;
		    document.getElementById("timenumber2").value = i						
	    }
	}				
</script>
<input type="button" name="" value="再次点击开始" onClick="timego2()">
<input type="text" name="" value="" id="timenumber2">
<p>随时间显示1至10</p>

另外,可以使用下列函数

某对象.事件=function () {
        clearInterval(变量名abc);
        }

来停止这个重复执行。

对话框

1.警告框:

alert();

完整写法是“window.alert()”,但是由于window对象是全局对象,我们简写成“alert()”即可。confirm()和prompt()也是同样的道理。

2.确认框

confirm();

confirm()方法对话框一般用于确认信息,只有确定和取消选择。用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

3.提示框

prompt();

prompt()方法对话框用于输入并返回用户输入的字符串。用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

<script type="text/javascript">
    var name = prompt("请输入你的名字");
    document.write("欢迎您," + name);
</script>

Navigator 对象

包含有关浏览器的信息。

Screen 对象

Screen 对象包含有关客户端显示屏幕的信息。

尺寸

screen.availHeight	返回屏幕的高度(不包括Windows任务栏)
screen.availWidth	返回屏幕的宽度(不包括Windows任务栏)
screen.height	返回屏幕的总高度
screen.width	返回屏幕的总宽度

Location 对象

Location 对象包含有关当前 URL 的信息。
属性:

location.href	返回完整的URL
location.pathname	返回URL路径
location.protocol	返回URL协议
location.hash	返回URL的锚部分
location.search	返回URL的查询部分
location.hostname	返回URL的主机名
location.port	返回一个URL服务器使用的端口号(默认的80端口不返回)

方法:

location.assign(URL 字符串)  

跳转到新的 URL

location.replace(URL 字符串)  

跳转到新的 URL,并替换浏览历史网址

Location.reload(布尔值)  

重新加载当前网址。参数为true,将向服务器重新请求这个网页,并且重新加载后,网页将滚动到头部(即scrollTop === 0)。如果参数是false或为空,浏览器将从本地缓存重新加载该网页,并且重新加载后,网页的视口位置是重新加载前的位置。

存储对象

Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。
localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。


上一篇: 14.数组对象 下一篇: 16.DOM Document 对象