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 相关文章推荐
URL地址中的#符号使用说明
Feb 12 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
javascript和jquery修改a标签的href属性
Dec 16 Javascript
jQuery选择器全面总结
Jan 06 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
Jul 30 Javascript
基于javascript的拖拽类封装详解
Apr 19 Javascript
js中let能否完全替代IIFE
Jun 15 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
Jul 31 Javascript
JS轮播图的实现方法
Aug 24 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
innerText 使用示例
2014/01/23 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
AngularJS快速入门
2015/04/02 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
Ruby如何创建一个线程
2013/03/10 面试题
迷你西餐厅创业计划书范文
2013/12/31 职场文书
中国央视网签名寄语
2014/01/18 职场文书
房地产项目建议书
2014/03/12 职场文书
论文指导教师评语
2014/04/28 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
作风年建设汇报材料
2014/08/14 职场文书
公司证明怎么写
2014/09/22 职场文书
铅球加油稿100字
2014/09/26 职场文书
2014年财政局工作总结
2014/12/09 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书