浏览器对象(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
用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。