国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript與vbscript數據共享

2019-11-21 02:21:31
字體:
來源:轉載
供稿:網友
如有紕漏之處,請指出,謝謝

1、普通全局變量
在browser里,引用一個全局變量,可以有很多方法,你可以直接引用該變量,也可以用window.variable來引用全局變量,原因是因為全局變量屬于window的窗體,但是當每新開一個窗口,瀏覽器會自動清空先前已有變量(也就是說,每個新開頁面都是一個“有清白之身的web頁”,因此在新開的窗口里是不可以引用之前定義的變量,如果要引用,可以變向獲取,如通過URL的參數傳遞等方法來獲取,但這是后話了)如:
<script>
var global = "this is a global var."
</script>
<SCRIPT LANGUAGE="vbScript">
<!--
alert(window.global)
alert(global)
//-->
</SCRIPT>

輸出結果:
this is a global var.
this is a global var.

2、vbs引用js的對象(非原型prototype對象)、函數
可直接引用:即對象名.屬性名

<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>

輸出結果:
change
hange

當js是prototype型時,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里調用vbs里的class,可先在vbs里先生成一個實例,js可以通過這個實例來訪問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>
輸出結果:
blueDestiny

4、js調用vbs定義的數組問題,可直接得用下標來獲得第幾個元素的值。

<SCRIPT LANGUAGE="vbScript">
dim a(2)
a(0)="blue"
a(1)="destiny"
</script>

<script>
<!--
alert(a(0))
alert(a(1))
//-->
</SCRIPT>
輸出結果:
blue
destiny

但是,如何將vbs的數組轉換成js的數組呢?可以利用js的VBArray()對象,以及toArray()方法,值得注意的是,toArray()方法得出的是一個一維數組:

<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
 Dim i, j, k
 Dim a(2, 2)
 '初始化二維數組
 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)
{
 //調用VBArray()對象,將vbs數組轉化為js的數組并調用toArray()方法得到一維數組。
 var a = new VBArray(vbarray);
 var b = a.toArray();
 var i;
 for (i = 0; i < 9; i++) 
 {
 document.writeln(b[i]);
 }

}
VBArrayTest(CreateVBArray());
-->
</SCRIPT>
輸出結果:
1 2 3 
4 5 6 
7 8 9 
1 2 3 4 5 6 7 8 9 

5、js數組轉化為vbs數組:
得到js的數組長度,可直接用length屬性獲得

<SCRIPT LANGUAGE="JavaScript">
<!--
var arr=["blue","Destiny"];
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
alert(arr.length)
//-->
</SCRIPT>

輸出結果:
2

如果要通過下標訪問js的數組元素,將無法獲取,但可通過現有的方法:join()(js里的方法)以及Split()

<SCRIPT LANGUAGE="vbScript">
<!--
'注:這里不可用vbs的join(arr,",")方法,實際上這里所用到的是js里的join方法,并且為vbs的
vbarr=arr.join(",")
vbarr=split(vbarr,",")
alert(vbarr(0))
alert(vbarr(1))
//-->
</SCRIPT>

輸出結果
blue
Destiny
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍南县| 林口县| 贵定县| 碌曲县| 平陆县| 永年县| 陇西县| 栾城县| 汉川市| 普陀区| 固始县| 通城县| 禹州市| 海南省| 临朐县| 肃宁县| 鄯善县| 和平县| 江达县| 封丘县| 五家渠市| 饶平县| 云阳县| 依兰县| 万山特区| 通州市| 无棣县| 溆浦县| 宝鸡市| 天峻县| 两当县| 田阳县| 南部县| 诸城市| 朝阳县| 宜章县| 保山市| 佛学| 夏河县| 西和县| 陆河县|