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 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
JS解析XML的实现代码
Nov 12 Javascript
js调用后台servlet方法实例
Jun 09 Javascript
实测jquery data()如何存值
Aug 18 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
Javascript的表单验证长度
Mar 16 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
ant-design-vue按需加载的坑的解决
May 14 Javascript
详解如何在Canvas中添加事件的方法
Apr 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
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python hmac模块使用实例解析
2019/12/24 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
好邻里事迹材料
2014/01/16 职场文书
运动会稿件100字
2014/02/21 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
python之django路由和视图案例教程
2021/07/26 Python
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android