js各种对象详解

来源:互联网 发布:金缕玉衣知乎 编辑:程序博客网 时间:2024/05/01 09:58
Windows,Document,Location,History,Navigator

一、 Windows对象
1.Window对象的属性
2.Window对象的方法
3.Window对象的事件

二、 Document对象
1.Document对象的属性
2.Document对象的方法

三、Location对象
1.Location对象的属性
2.Location对象的方法

四、 History对象
1.History对象的属性
2.History对象的方法

五、 Navigator对象
Navigator对象的属性

一、 Windows对象
Window对象在VBScript浏览器对象的层次图中位于最高一层,具有唯一性,只要浏览器窗口打开,即使在浏览器中没有加载任何页面,VBScript中同样也会建立Window对象。所以,它也就具有许多其他浏览器对象不同的属性方法。
1.Window对象的属性
Window对象中存放的是浏览器整个窗口的属性,包括各种工具条的设置、浏览器的外观设置以及Document对象、History对象Location对象等内容,对Window对象的属性逐个进行详细介绍是很难的,下面我们对Window对象的属性分类进行简要的介绍。
(1)Closed、Opener属性
Closed属性可以判断一个窗口是否已经被关闭;通过Opener属性可以通过一个窗口来操纵它的父窗口。当一个窗口打开另外一个窗口后,它们之间的关系并不是如同Frame结构一样紧密,它们只是通过Opener属性,子窗口可以父窗口发生联系,而通过Open()方法的返回值,父窗口可以子窗口发生联系,这样两个相关的窗口之间就可以实现互操作。
例如,以下例题先建立一个弹出窗口,通过Opener属性可以获取父窗口的属性信息,下述语句可以显示父窗口的名称:
<script language="VBScript">
<!--
DIM popup
popup= Window.Open("tan.htm","popupnav", _
"width=225,height=235,resizable=1,scrollbars=auto")
Window.name ="测试Opener属性"
-->
</script>
例3-41 Opener属性使用示例
以下是弹出窗口的代码(应命名为tan.htm):
<HTML><HEAD>
<script language="vbScript">
sub Closeit()
    setTimeout "self.Close()",10000
End sub
</script></HEAD>
<BODY onload="Closeit()">
这是一个测试文件,
用于测试文件的自动打开与关闭。<p>
<a href="VBScript:alert(Window.Opener.name)">父窗口的名称</a>
</BODY></HTML>
(2)defaultStatus、status属性
defaultStartus属性的值是在浏览器窗口下面的状态栏中缺省显示的信息,status属性的值是状态栏中当前显示的信息。
例如,将浏览器状态栏的当前显示的信息通过对话框反馈给用户:
<a href="3-44.htm" OnMouseOver="Window.status='Window对象的status属性的用法'" >测试Window对象的status属性的用法</a>
(3)Document、History、Location属性
Document属性、History属性、Location属性就是浏览器对象中的Document对象、History对象Location对象,下面分别对这些对象进行介绍。
2.Window对象的方法
Window对象有很多方法,下面我们介绍最常用的几种方法。
(1)Open(页面地址,窗口名称,窗口风格)Close()方法
Open()方法能够打开一个窗口,并且,在打开窗口的时候,还能够指定窗口的风格,Open()方法返回的是窗口的引用,它有3个参数:页面地址、窗口名称窗口风格,窗口风格中可以指定浏览器是否具有toolbar(工具栏)、Location(地址栏)、directories(目录按钮)、status(状态栏)、menubar(菜单条)、scrollbars(滚动条),它们可以设置为yes或no,窗口风格也可以指定浏览器窗口的width(宽)height(高)。
Close()方法可以自动关闭一个窗口,例如刚才我们打开的myWindow对象,可以通过Close()方法关闭:
myWindow.Close()
例如,我们打开一个窗口,页面是hello.htm,窗口高400,宽400,有工具栏、地址栏、目录按钮,而没有状态栏、菜单条滚动条,则代码如下所示:
<HTML><HEAD>
<SCRIPT LANGUAGE=VBScript>
<!--
function OpenWindow()
    Window.Open "hello.htm",null,"height=400,width=400," & _
    "toolbar=yes,location=yes,directories=yes,status=no," & _
    "menubar=no,scrollbars=no"
End function
function closeWindow()
    Window.Close
End function
-->
</SCRIPT></HEAD><BODY>
<a href="VBScript:OpenWindow()">打开一个新窗口</a><p>
<a href="VBScript:CloseWindow()">关闭窗口</a>
</BODY></HTML>
例3-42 Window对象OpentClose方法的使用示例
(2)alert(字符串)
这种方法将在以后广泛使用。
alert()方法的功能是弹出一个警告框,在警告框内显示字符串文本,通常,在给用户某些警告信息的时候使用,例如,在IE浏览器内运行alert("你好!")后警告框如图3-11所示。
                                                         图3-11警告框
3.Window对象的事件
Window对象的事件有9种,较常用的有OnLoad、OnUnLoad、OnFocus、OnScroll。
在装载一个HTML页时会运行Window对象的OnLoad事件。要使用该事件,既可创建一个命名为Window_OnLoad的过程,也可向<BODY>标记中添加OnLoad属性(例3-30)。
Sub Window_OnLoad
    StrName=Window.Prompt("请输入姓名")
    Window.Alert "Hello " & strName
End Sub

二、Document对象
Document对象
代表的是当前的整个页面,所以在Document对象中存储着当前页面的一些信息,包括页面的前景色背景色,也包括了页面中的表单、锚标、图象等对象,运用Document对象,我们还能够向页面中动态添加文本以及各种标签。
1.Document对象的属性
Document对象的属性非常丰富,下面我们分类进行简单介绍。
(1)alinkColor、vlinkColor、bgColor、fgColorlinkColor属性
这些属性是页面的颜色设置。bgColor是页面的背景颜色,fgColor是页面的前景颜色(也就是文本的颜色),linkColor是超链接的颜色,alinkColor是鼠标单击中的超链接的颜色,vlinkColor是已经访问过的超链接的颜色,这些属性<BODY>标签中定义的各种属性相对应。
在这里设置颜色时,颜色应该以&hrrggbb形式表达,其中,&h代表颜色是以16进制表达的,而rr代表着红色的深浅程度,gg代表着绿色的深浅程度,bb代表着蓝色的深浅程度。其他各种颜色都是通过这三种颜色组合而成,颜色深浅程度以16进制整数表示,范围从00到ff,如果要设置颜色为绿色,则颜色应该表达成&h00ff00。
例如,运用bgColor属性,我们可以在页面中定义一个按钮,鼠标单击按钮后将页面的背景颜色设置成为黑色,代码如例3-43所示。
<HTML><HEAD><TITLE>Doeument</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
function ChangeColor()
   DIM bgc
bgc=rnd*&hffffff
   Randomize
   Document.bgColor = bgc
End function
-->
</SCRIPT></HEAD><BODY>
<FORM>
<INPUT TYPE="button"
VALUE ="改变背景颜色" OnClick="ChangeColor">
</FORM></BODY></HTML>
   例3-43 通过bgColor设置页面的背景色
(2)Title属性
Title属性中存储的是页面的标题,也就是在<TITLE>标签中所定义的标题。我们可以通过如下所示的代码设置页面的标题为Welcome:
Document.Title="欢迎光临"
(3)anchors、applets、forms、images、frames属性
这些属性中存放着对象的数组,页面中所有的超链接存储在links数组中,锚点则存储在anchors()数组中,表单存储在forms()数组中,图象存储在image()数组中,所有的frame存储在frames()数组中,并可用length属性来判断它们的长度。如果在页面中只定义了一个表单,那我们可以通过Document.forms(0)来引用这个表单对象,以下举一个例子来说明其用法:
<HTML><HEAD></HEAD><BOdy>
<Form Name="mytable">
请输入数据:<Input Type="text" Name="text1" Value="">
</Form>
<A name="Link1" href="test1.htm">链接到第一个文本</a><br>
<A name="Link2" href="test2.htm">链接到第二个文本</a><br>
<A name="Link2" href="test3.htm">链接到第三个文本</a><br>
<A href="#Link1">第一锚点</a>
<A href="#Link2">第二锚点</a>
<A Href="#Link3">第三锚点</a>
<BR>
<Script Language="VBScript">
Document.Write "文档有" & Document.links.length & _
"个链接"& "<br>"
Document.Write "文档有" & Document.anchors.length & _
"个锚点"&"<br>"
Document.Write "文档有" & Document.forms.length & "个窗体"
</script></body></HTML>
例3-44 Document属性的用法
2.Document对象的方法
(1)Write()方法
在前面的内容中,我们已经使用过Write()方法,Write()方法的功能就是向页面内写入文本或者标签,其实,这些功能似乎都可以直接在HTML页面中完成,而不需要Script,但是,运用Script,可以完成一定的运算工作然后显示结果,这一点是HTML做不到的。
(2)Open()Close()方法
Open()方法的功能就是打开一个新文档,而Close()方法的功能就是关闭当前文档。


三、Location对象

在VBScript中,当前浏览器访问页面的URL地址存储在Location对象中,使用Location对象,可以将这个URL地址进行分析,并能将浏览器导航到指定地址。
1.Location对象的属性
当浏览器访问某个站点时,完整的URL地址如下所示:
协议名称://主机名称:端口号/页面路径#页面内锚标?搜索信息
假设有这样一个URL地址:http://www.MyWeb.com:80/welcome/index.html#section3,其中,我们可以看出协议名称为http,主机名称为www.MyWeb.com,端口号为80,页面地址为welcome/index.html,在这个页面内有一个锚标,名称为section3。运用Location对象能够分析这个URL地址的各个组成部分。
(1)protocol属性。protocol属性指明了通信采用的协议,一般我们在Web浏览器中使用的协议是http:,除此之外,还有ftp协议gopher协议。
(2)host属性。host属性指明了页面所在Web服务器的主机名称,这个名称可以是主机的域名,也可以是IP地址。
(3)port属性。port属性指明了服务器通讯的端口号,在一般的URL地址中,并不直接包含服务器的端口号,如果没有指明端口号,缺省情况下是80。
(4)pathname属性。pathname属性指明了页面在服务器上的路径,除了包含路径信息之外,在这个属性中,还包含了页面的文件名称。
(5)hash属性。如果在页面中的页面内跳转的锚标,那么在页面的URL地址中也可以通过锚标使页面跳转到指定的部分,这种情况下,可以通过hash属性获得页面跳转的锚标信息。如上例中,Location.hash可以获得锚标为#section3。
(6)search属性。用户在浏览时,常常会发现在搜索站点的页面URL地址中,在问号(?) 后还有一些信息,这些信息往往是提交到服务器上进行搜索的信息,例如?id=3,通过分析search属性值可以获取这些提交的信息。
(7)href属性。包括当前的URL信息,利用它可编程实现导航。.
<A Href="" id="JumpNext">Next Page</a>
<SCRIPT LANGUAGE=vbscript>
<!--
sub JumpNext_OnClick()
    if Navigator.appName = "Microsoft Internet Explorer" then
       Location.href="IEPage.htm"
    Else
       Location.href ="OtherPage.htm"
    end if
end sub
-->
</SCRIPT>
例如,我们可以运用Location对象将页面的URL进行分析,将各个URL地址的各个组成部分分析出来(例3-56)。
<HTML><HEAD><TITLE>Location</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Document.Write("protocol:"+Location.protocol+"<br>")
Document.Write("host:"+Location.host+"<br>")
Document.Write("port:"+Location.port+"<br>")
Document.Write("pathname:"+Location.pathname+"<br>")
Document.Write("hash:"+Location.hash+"<br>")
Document.Write("search:"+Location.search+"<br>")
-->
</SCRIPT></HEAD><BODY>
    例3-56 运用Location对象分析URL地址的各个组成部分
(7)hostname属性。hostname属性将host属性port属性结合在一起,既包含了主机名称,也包含了主机端口号,主机名称端口号之间通过冒号(:)分离。
(8)href属性。href属性则提供了整个URL地址,运用href属性,我们可以获知完整的URL地址,这个属性的信息将以上几个属性的信息结合在一起。
2.Location对象方法
Location对象的方法能够将页面刷新或者将页面导航到另外一个URL地址。
(1)assign(URL地址)方法
assign()方法能够将页面导航到另外一个地址上去,例如,我们可以运用下面的语句,将页面导航到WWW.MyWeb.com站点下的index.html文件;
Location.assign("http://127.0.0.1/MyWeb/test.asp")
(2)reload()方法
运用reload()方法能够将页面全部刷新,例如,我们可以如下定义一个按钮,按钮的功能就是将页面刷新:
<INPUT TYPE="button" VALUE="RELOAD" OnClick="Location.reload()">
(3)replace(URL地址)方法
replace()方法可以使用URL地址将当前页面代替,它assign()方法不同之处在于,运用assign()方法是将页面导航到另外一个页面,用户在浏览器中运用"后退"按钮还能返回到这个页面,而replace()方法则是用另个一个页面取代当前页面,用户在浏览器中不能运用"后退"按钮返回当前页面。


四、 History对象
在用户在网上浏览时,浏览器中维护着一个用户最近访问过的URL地址数组,通过 History对象,我们可以获得最近访问过的URL地址。而且,运用History对象的back()、 forward()方法,我们能够获得浏览器工具栏中的"后退"、"前进"按钮相同的效果。借助于History对象,我们可以获取浏览器访问过地址的信息。
1.History对象的属性
Navigator浏览器IE浏览器对于History对象的属性不完全兼容,它们有一个相同的属性——length 属性,在length属性中记录当前浏览器访问历史记录的数量,例如,我们可以通过下面的VBScript代码将浏览器访问的历史记录数量显示到HTML页面上:
Window.Document.Write("You have visited " & History.length & "sites")
2.History对象的方法
History对象的back()方法可以载入历史记录中前一个历史记录的URL地址,forward() 方法可以载入历史记录中下一个历史记录的URL地址,go()方法可以载入历史记录中任何 一个历史记录的URL地址。
例如,在下面的页面中,我们运用两个按钮,可以实现浏览器中的"后退"、"前进"按钮的功能,VBScript代码如例3-45所示。
<HTML><HEAD><TITLE>History</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
function goback()
History.back()
End function
function goforward()
    History.forward()
End function
-->
</SCRIPT></HEAD><BODY>
<FORM>
<INPUT TYPE="button" VALUE="BACK"
OnClick="goback()">
<INPUT TYPE="button" VALUE="FORWARD"
OnClick="goforward()">
</FORM></BODY></HTML>
   例3-45 运用History对象实现浏览器中"后退"、"前进"按钮的功能
go()方法有一个参数,代表载入历史记录列表中相对位置的历史记录,例如go(-1)则代表载入前一条历史记录,它back()方法的功能是一致的,go(1)代表载入后一条历史记录,它forward()方法的功能是一致的。

五、 Navigator对象
Navigator对象中存储着关于浏览器版本浏览器运行平台的一些信息,由于各种浏览 器之间还存在着不完全兼容性,而且,用户所使用的浏览器版本也有差异,所以,在建立网站的时候,有时候有必要建立多个不同版本的网页,以适应不同浏览器的需要,在这里就需要运用Navigator对象进行判断。
通过Navigator对象的属性,我们可以获得浏览器运行平台的信息,下面我们对Navigator对象的属性进行简单介绍。
(1)appName属性。通过Navigator对象的appName属性可以获得浏览器的名称,例如,当在IE浏览器中运行脚本Navigator.appName,获得浏览器名称为Microsoft Internet Explorer。
例如,我们可以通过Navigator对象判断浏览器的名称,将浏览器分为三类:Netscape、Internet ExplorerOther,则VBScript代码如例3-46所示。
<HTML><HEAD><TITLE>Navigator</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
If (Navigator.appName="Netscape") then
       Window.Document.Write("Netscape")
elseIf (Navigator.appName="Microsoft Internet Explorer") then
       Window.Document.Write("Internet Explorer")
else
       Window.Document.Write("Others")
End If
Document.Write "<br>"
Document.Write Navigator.appVersion
Document.Write "<br>"
Document.Write Navigator.userAgent
-->
</SCRIPT></HEAD><BODY></BODY></HTML>
    例3-46 通过Navigator对象判断浏览器名称
(2)appCodeName属性。通过appCodeName属性可以获得浏览器代码名称,对于IE浏览器,它的代码名称为Mozilla。
(3)appVersion属性。通过appVersion属性可以获得浏览器的版本信息以及浏览器运行平台 的信息,例如,在Windows NT4.0下运行的IE5.0浏览器中,Navigator.appVersion返回值为4.0(compatible;MSIE5.0;Windows NT)。
(4)userAgent属性。在HTTP协议中,客户端向服务器端请求时,会发出一段USER-AGENT信息,Navigator对象的userAgent属性值就是USER-AGENT信息,可以获得浏览器及所在操作系统的信息,这个属性其他属性比起来,获得的信息要全面得多。例如,Window NT 4.0下运行的IE5.0浏览器中,navtgator.appVersion的返回值为Mozilla/4.0(compatible;MSIE 5.0;Windows NT),其中可以看出,同时包含了浏览器信息、操作系统信息浏览器代码名称。