Javascript與vbscript數(shù)據(jù)共享的內(nèi)容,大家清楚嗎?其實(shí)ASP這個(gè)功能可以管理不同的語(yǔ)言,而且能自動(dòng)調(diào)用相應(yīng)腳本代碼和執(zhí)行函數(shù),如果你覺(jué)得錯(cuò)新技術(shù)頻道的知識(shí)有用,就不要錯(cuò)過(guò)下面的精彩內(nèi)容哦。
1、普通全局變量
在browser里,引用一個(gè)全局變量,可以有很多方法,你可以直接引用該變量,也可以用window.variable來(lái)引用全局變量,原因是因?yàn)槿肿兞繉儆趙indow的窗體,但是當(dāng)每新開一個(gè)窗口,瀏覽器會(huì)自動(dòng)清空先前已有變量(也就是說(shuō),每個(gè)新開頁(yè)面都是一個(gè)“有清白之身的web頁(yè)”,因此在新開的窗口里是不可以引用之前定義的變量,如果要引用,可以變向獲取,如通過(guò)URL的參數(shù)傳遞等方法來(lái)獲取,但這是后話了)如:
<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可以用以下方法來(lái)訪問(wèn)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可以通過(guò)這個(gè)實(shí)例來(lái)訪問(wèn)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ù)組問(wèn)題,可直接得用下標(biāo)來(lái)獲得第幾個(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ù)組:
<SCRIPT?LANGUAGE="VBScript">
<!--
Function?CreateVBArray()
?Dim?i,?j,?k
?Dim?a(2,?2)
?'初始化二維數(shù)組
?k?=?1
?For?i?=?0?To?2
?For?j?=?0?To?2
?a(j,?i)?=?k
?document.writeln(k)
?k?=?k?+?1
?Next
?document.writeln("<BR>")
?Next
?CreateVBArray?=?a
End?Function
-->
</SCRIPT>
<SCRIPT?LANGUAGE="JScript">
<!--
function?VBArrayTest(vbarray)
{
?//調(diào)用VBArray()對(duì)象,將vbs數(shù)組轉(zhuǎn)化為js的數(shù)組并調(diào)用toArray()方法得到一維數(shù)組。
?var?a?=?new?VBArray(vbarray);
?var?b?=?a.toArray();
?var?i;
?for?(i?=?0;?i?<?9;?i++)?
?{
?document.writeln(b[i]);
?}
}
VBArrayTest(CreateVBArray());
-->
</SCRIPT>
輸出結(jié)果:
1?2?3?
4?5?6?
7?8?9?
1?2?3?4?5?6?7?8?9?
5、js數(shù)組轉(zhuǎn)化為vbs數(shù)組:
得到j(luò)s的數(shù)組長(zhǎng)度,可直接用length屬性獲得
<SCRIPT?LANGUAGE="JavaScript">
<!--
var?arr=["blue","Destiny"];
//-->
</SCRIPT>
<SCRIPT?LANGUAGE="vbScript">
<!--
alert(arr.length)
//-->
</SCRIPT>
輸出結(jié)果:
2
如果要通過(guò)下標(biāo)訪問(wèn)js的數(shù)組元素,將無(wú)法獲取,但可通過(guò)現(xiàn)有的方法:join()(js里的方法)以及Split()
<SCRIPT?LANGUAGE="vbScript">
<!--
'注:這里不可用vbs的join(arr,",")方法,實(shí)際上這里所用到的是js里的join方法,并且為vbs的
vbarr=arr.join(",")
vbarr=split(vbarr,",")
alert(vbarr(0))
alert(vbarr(1))
//-->
</SCRIPT>
輸出結(jié)果
blue
Destiny
相信各位朋友們對(duì)于Javascript與vbscript數(shù)據(jù)共享已經(jīng)了解了,也獲得了很多這方面的專業(yè)知識(shí),大家可以選擇上面的知識(shí)進(jìn)行學(xué)習(xí)。
新聞熱點(diǎn)
疑難解答
圖片精選