Javascript与vbscript数据共享

2016-02-19 10:56 2 1 收藏

下面请跟着图老师小编一起来了解下Javascript与vbscript数据共享,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - Web开发 】

如有纰漏之处,请指出,谢谢

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

来源:https://www.tulaoshi.com/n/20160219/1596132.html

延伸阅读
标签: Web开发
网上提供的这方面资料太少了,研究一两天,做了个例子,大家可以参考! html head meta http-equiv="Content-Type" content="text/html; charset=gb2312" / titleFlash与3D信息交互/title style type="text/CSS" !-- td {}{     font-family: "宋体";     font-size: 12px; } -- /style /head body onLoad="Ini...
标签: Web开发
小狗收藏贴 转换 仅拼音 排序 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。例如,可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在VBScript中只有一个基本数据类型,即Variant,因此所有变...
在WWW中Java因其灵活性而得到越来越广泛的运用,许多的网页都使用了Java来增加动感和与用户进行交互对话.在WWW中Java Script和Java Applet是运用最多的。Java Script的启动速度快, 编写简单,易于修改,与文档的结合密切,但其功能略嫌简单; 而Java Applet的功能强大, 灵活性好,但编写复杂,无法直接在文档中修改.因此如能将二者结合运用将达到...
标签: Web开发
牢记:函数式编程不是用函数来编程!!! 23.4函数式编程 23.4.1 什么是函数式编程 什么是函数式编程?如果你这么直白地询问,会发现它竟是一个不太容易解释的概念。许多在程序设计领域有着多年经验的老手,也无法很明白地说清楚函数式编程到底在研究些什么。函数式编程对于熟悉过程式程序设计的程序员来说的确是一个陌生的领域,闭包(cl...

经验教程

498

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部