浏览器对象以及异常处理
一、浏览器对象
在web开发中,我们经常会使用到浏览器对象来对用户体验,UI设计等一系列事件进行操作,那么我就先说说我对浏览器对象的了解:
1.window对象
浏览器对象中,window对象无疑是一个很重要也是最顶层的对象,我们经常使用的document方法以及alert方法都是window对象中的方法,window对象指的是浏览器打开的窗口,window对象中大概包含以下内容
属性:
closed: 返回窗口是否已被关闭。
defaultStatus: 设置或返回窗口状态栏中的默认文本。
document: 对 Document 对象的只读引用。
history: 对 History 对象的只读引用。请参数 History 对象。
innerheight : 返回窗口的文档显示区的高度。
innerwidth: 返回窗口的文档显示区的宽度。
length: 设置或返回窗口中的框架数量。
location: 用于窗口或框架的 Location 对象。请参阅 Location 对象。
name: 设置或返回窗口的名称。
Navigator: 对 Navigator 对象的只读引用。请参数 Navigator 对象。
opener: 返回对创建此窗口的窗口的引用。
outerheight: 返回窗口的外部高度。
outerwidth: 返回窗口的外部宽度。
pageXOffset: 设置或返回当前页面相对于窗口显示区左上角的 X 位置。
pageYOffset: 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
parent: 返回父窗口。
Screen: 对 Screen 对象的只读引用。请参数 Screen 对象。
self: 返回对当前窗口的引用。等价于 Window 属性。
status: 设置窗口状态栏的文本。
top: 返回最顶层的先辈窗口。
window: window 属性等价于 self 属性,它包含了对窗口自身的引用。
screenLeft,screenTop,screenX,screenY:
只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。
方法:
alert(): 显示带有一段消息和一个确认按钮的警告框。
blur(): 把键盘焦点从顶层窗口移开。
clearInterval(): 取消由 setInterval() 设置的 timeout。
clearTimeout(): 取消由 setTimeout() 方法设置的 timeout。
close(): 关闭浏览器窗口。
confirm(): 显示带有一段消息以及确认按钮和取消按钮的对话框。
createPopup(): 创建一个 pop-up 窗口。
focus(): 把键盘焦点给予一个窗口。
moveBy(): 可相对窗口的当前坐标把它移动指定的像素。
moveTo(): 把窗口的左上角移动到一个指定的坐标。
open(): 打开一个新的浏览器窗口或查找一个已命名的窗口。
print(): 打印当前窗口的内容。
prompt(): 显示可提示用户输入的对话框。
resizeBy(): 按照指定的像素调整窗口的大小。
resizeTo(): 把窗口的大小调整到指定的宽度和高度。
scrollBy(): 按照指定的像素值来滚动内容。
scrollTo(): 把内容滚动到指定的坐标。
setInterval(): 按照指定的周期(ms为单位)来调用函数或计算表达式。
setTimeout(): 在指定的毫秒数后调用函数或计算表达式。
其中在window对象中最常用的毫无疑问是alert和document,但其中的setInterval与setTimeout也常于web开发中出现,如:
<div>
<button id="btn1" onclick="stop();" >点我停止</button>
<button id="btn2" onclick="getalert();" >开始弹窗</button>
<button id="btn3" onclick="stopalert();" >停止弹窗</button>
</div>
<script onload="getalert()">
var nowtime = setInterval(function(){
getTime();
},1000);//这里的二参为间隔时间单位毫秒
var win;
function getalert(){//自己调用自己形成循环
alert("不断弹窗");
win= setTimeout(function(){
getalert();
},1000);
}
function stopalert(){
clearTimeout(win);//停止上述循环
}
function getTime(){
var time = new Date();
var t= time.toLocaleTimeString();
document.getElementById("time1").innerHTML = t;
}
function stop(){
clearInterval(nowtime);// 对setInternal进行停止,不是暂停
}
</script>
2.History对象
history对象即历史对象,能让js使用和浏览器中的前进,后退机制。
方法包括:
back() : 加载 history 列表中的前一个 URL。
forward() : 加载 history 列表中的下一个 URL。
go() : 加载 history 列表中的某个具体页面。
3.Location对象
Location 对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
此对象中我们最常用的就是href属性,我们常用herf属性来返回我们当前访问网页的url,除此以外,Location对象中还有replace等方法用于替换,添加,刷新文档信息。
4.screen对象
Screen对象包含的是当前屏幕信息。主要是在做适配时用得到。
Screen对象中的属性重要的有avilheight,avilwidth以及Height和Width,分别表示可用屏高,可用屏宽以及屏幕高度,屏幕宽度。
二、异常处理
与大部分语言相同,js中大多也是用try catch语句来捕获异常,用throw语句将异常抛出,js中易遇到的错误及解释如下:
RangeError: raised when a numeric variable or parameter is outside of its valid range //变量超过其规定的值
ReferenceError: raised when de-referencing an invalid reference //
引用无效,即引用方未定义或已被删除
SyntaxError: raised when a syntax error occurs while parsing code in eval() //
语法出现错误
TypeError: raised when a variable or parameter is not a valid type //类型错误常由等号左右类型不一致引起
URIError: raised when encodeURI() or decodeURI() are passed invalid parameters //没有响应的url
下面举个例子:
<script>
myFunc();
function myFunc()
{
var a = 100;
var b = 0;
try{
if ( b == 0 ){
throw( "除0." );
}else{
var c = a / b;
}
}catch (e) {
alert( e );
}
finally{
alert("异常处理");
}
}
</script>
由上面代码可以看出js与大部分语言的异常处理基本一致,由try,catch,throw,finally构成,因此不再赘述。
//经验+3