我们假定在VC++中已经得到网页的document指针,然后访问javascript有两种方法:一种是通过document.Script,另一种是通过document.parentWindow(以下直接用window)。它们都具有相同的效果,下面我们就以window为讨论的目标。 在实际的网页客户端脚本开发中,我们曾经混合使用过javascript和vbscript。由于javascript的强大和灵活,在网页中已经很少再使用vbscript了,可有些场合,我们又不得不用。比如,在一个网页中嵌入realplayer播放器控件,我们可以用javascript调用realplayer控件的属性和方法,却只能用vbscript响应realplayer控件的事件。具体信息可以参见realplayer的官方帮助网页http://service./help/library/guides/extend/htmfiles/ch01_emb.htm#23018 很显然,javascript和vbscript是两个不同的脚本引擎,而且在一个页面环境中,肯定也是以不同的引擎实例而存在。然而,我们发现在两个不同脚本引擎中声明的变量和方法可以互相访问和调用。这是怎么实现的呢?我们尝试着列举几个技术要点就清楚了。
比如用vbscript定义了一个echo方法。然后,在javascript中访问vbscript中的echo方法。我们分析一下是如何进行的。
<script language="javascript">
首先,vbscript中定义的echo方法,如上所述可以看作是window对象的方法进行访问。javascript引擎先在本实例的空间中查找echo方法,不成功,然后查找全局对象window,找到了,然后执行。
综上所述:我们可以认为window在脚本引擎中的作用主要有三个:
所以,window的以上设计并非必须,只是可以让我们书写代码更简洁,应用更灵活一些而已。
|
|
来自: icecity1306 > 《开发资料》