Javascript与vbscript数据共享

2016-02-19 10:56 5 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

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

延伸阅读
标签: Web开发
作者:平凡点滴 HTML HEAD META NAME="AUTHOUR" Content="DANNY KANG" META NAME="CreateDate" Content="2004-10-28" META NAME="Keywords" Content="DANNY KANG,DannyKang,DK,[D.K],pizz" META http-equiv=content-type content="text/html; charset=gb2312" SCRIPT language=javascript //'+-------...
标签: Web开发
1、MsgBox函数 信息框函数(MsgBox)是常用的输出信息的函数。它在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪一个按钮。其语法格式如下: 变量=MsgBox (信息内容) [,对话框类型 [,对话框标题 ]] ) 说明: 信息内容指定在对话框中出现的文本,在信息内容中使用硬回车符(CHR13)可以使文本换行...
标签: ASP
Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的最新成员,它将灵活的 Script 应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 Script 和 Microsoft Internet Information Server 中的 Web 服务器 Script。 * 什么是 VBScript? * 在 HTML 页面中添加 VBscript 代码 VBScript...
标签: autocad教程
在AutoCAD中可利用剪贴板、OLE等方式来与其他Windows应用程序进行交互,如电子表格、文字处理文档和动画图像等程序。此外,AutoCAD还可以通过图形转换来使用或创建其他格式的图形。 剪贴板是Windows系统中各应用程序之间进行数据交换的主要方式之一,AutoCAD中提供了多个命令来使用剪贴板。 14.1.1COPYCLIP命令 该命令用于将选定对象复制到...
标签: 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...

经验教程

955

收藏

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