Javascript與vbscript數(shù)據(jù)共享
2024-09-06 12:43:54
供稿:網(wǎng)友
如有紕漏之處,請(qǐng)指出,謝謝
1、普通全局變量
在browser里,引用一個(gè)全局變量,可以有很多方法,你可以直接引用該變量,也可以用window.variable來引用全局變量,原因是因?yàn)槿肿兞繉儆趙indow的窗體,但是當(dāng)每新開一個(gè)窗口,瀏覽器會(huì)自動(dòng)清空先前已有變量(也就是說,每個(gè)新開頁面都是一個(gè)“有清白之身的web頁”,因此在新開的窗口里是不可以引用之前定義的變量,如果要引用,可以變向獲取,如通過URL的參數(shù)傳遞等方法來獲取,但這是后話了)如:
<script>
var global = "this is a global var."
</script>
<SCRIPT LANGUAGE="vbScript">
<!--
alert(window.global)
alert(global)
//-->
</SCRIPT>
輸出結(jié)果:
this is a global var.
this is a global var.
2、vbs引用js的對(duì)象(非原型prototype對(duì)象)、函數(shù)
可直接引用:即對(duì)象名.屬性名
<SCRIPT LANGUAGE="JavaScript">
<!--
function obj(){};
obj.string="test";
obj.replacec=function(s){return s.replace(/c/,"")};
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
alert(obj.string)
obj.string="change"
alert(obj.string)
alert(obj.replacec(obj.string))
//-->
</SCRIPT>
輸出結(jié)果:
change
hange
當(dāng)js是prototype型時(shí),vbs可以用以下方法來訪問js的成員
<SCRIPT LANGUAGE="JavaScript">
<!--
function myClass(s)
{
this.s=s
return this;
};
myClass.prototype.output=function()
{
alert(this.s);
}
var obj=new myClass("blueDestiny");
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
obj.output()
//-->
</SCRIPT>
3、js里調(diào)用vbs里的class,可先在vbs里先生成一個(gè)實(shí)例,js可以通過這個(gè)實(shí)例來訪問vbs的成員。
<SCRIPT LANGUAGE="vbScript">
<!--
class myClass
public s
public sub alertstring()
alert(s)
end sub
end class
set obj=new myClass
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
obj.s="blueDestiny"
obj.alertstring()
//-->
</SCRIPT>
輸出結(jié)果:
blueDestiny
4、js調(diào)用vbs定義的數(shù)組問題,可直接得用下標(biāo)來獲得第幾個(gè)元素的值。
<SCRIPT LANGUAGE="vbScript">
dim a(2)
a(0)="blue"
a(1)="destiny"
</script>
<script>
<!--
alert(a(0))
alert(a(1))
//-->
</SCRIPT>
輸出結(jié)果:
blue
destiny
但是,如何將vbs的數(shù)組轉(zhuǎn)換成js的數(shù)組呢?可以利用js的VBArray()對(duì)象,以及toArray()方法,值得注意的是,toArray()方法得出的是一個(gè)一維數(shù)組: