我们假定在VC++中已经得到网页的document指针,然后访问javascript有两种方法:一种是通过document.Script,另一种是通过document.parentWindow(以下直接用window)。它们都具有相同的效果,下面我们就以window为讨论的目标。
在实际的网页客户端脚本开发中,我们曾经混合使用过javascript和vbscript。由于javascript的强大和灵活,在网页中已经很少再使用vbscript了,可有些场合,我们又不得不用。比如,在一个网页中嵌入realplayer播放器控件,我们可以用javascript调用realplayer控件的属性和方法,却只能用vbscript响应realplayer控件的事件。具体信息可以参见realplayer的官方帮助网页http://service.real.com/help/library/guides/extend/htmfiles/ch01_emb.htm#23018
很显然,javascript和vbscript是两个不同的脚本引擎,而且在一个页面环境中,肯定也是以不同的引擎实例而存在。然而,我们发现在两个不同脚本引擎中声明的变量和方法可以互相访问和调用。这是怎么实现的呢?我们尝试着列举几个技术要点就清楚了。
- 二者都支持全局对象。window就是二者的全局对象,凡是全局对象的属性和方法,在访问时,可不加上对象名。如既可以使用window.alert("hello world"),也可以使用alert(