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的二级联动菜单实现代码
Apr 25 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
Vue中控制v-for循环次数的实现方法
Sep 26 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
了解重排与重绘
May 29 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
Jul 31 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
Dec 09 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
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
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
使用js画图之饼图
2015/01/12 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
Js面试算法详解
2018/04/08 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
python中的yield使用方法
2014/02/11 Python
python中__call__内置函数用法实例
2015/06/04 Python
python操作excel的方法
2018/08/16 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python列表list操作相关知识小结
2020/01/29 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
Python的collections模块真的很好用
2021/03/01 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
局域网定义和特性
2016/01/23 面试题
行政部总经理岗位职责
2014/01/04 职场文书
会议邀请书范文
2014/02/02 职场文书
入党申请自荐书范文
2014/02/11 职场文书
工程材料采购方案
2014/05/18 职场文书
毕业论文致谢词
2015/05/14 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
PyTorch的Debug指南
2021/05/07 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers