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 相关文章推荐
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
Jquery使用css方法改变样式实例
May 18 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
Vue Cli与BootStrap结合实现表格分页功能
Aug 18 Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 Javascript
使用Vue实现图片上传的三种方式
Jul 17 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
微信小程序加载机制及运行机制图解
Nov 27 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
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python数据结构树和二叉树简介
2014/04/29 Python
Python中自定义函数的教程
2015/04/27 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
python入门之基础语法学习笔记
2020/02/08 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
平面设计专业大学生职业规划书
2014/03/12 职场文书
大学开学计划书
2014/04/30 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers