Javascript与vbscript数据共享


Posted in Javascript onJanuary 09, 2007

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

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

Javascript 相关文章推荐
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
微信小程序使用字体图标的方法
May 23 Javascript
vue中使用v-model完成组件间的通信
Aug 22 Javascript
node使用request请求的方法
Dec 20 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
Apr 26 Javascript
In Javascript Class, how to call the prototype method.(three method)
Jan 09 #Javascript
js技巧--转义符&quot;\&quot;的妙用
Jan 09 #Javascript
客户端脚本中常常出现的一些问题和调试技巧
Jan 09 #Javascript
Javascript miscellanea -display data real time, using window.status
Jan 09 #Javascript
Javascript - HTML的request类
Jan 09 #Javascript
贴一个在Mozilla中常用的Javascript代码
Jan 09 #Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 #Javascript
You might like
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
第十三节--对象串行化
2006/11/16 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
php中关于换行的实例写法
2019/09/26 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js判断是否是手机页面
2017/03/17 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
Python isinstance判断对象类型
2008/09/06 Python
Python中的闭包实例详解
2014/08/29 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
小加工厂管理制度
2014/01/21 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
场地使用证明模板
2014/10/25 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书