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 动态扩展对象之另类视角
May 25 Javascript
读jQuery之五(取DOM元素)
Jun 20 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
JavaScript汉诺塔问题解决方法
Apr 21 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
Jun 21 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
JS正则表达式验证中文字符
May 08 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
Jun 10 Javascript
vue resource发送请求的几种方式
Sep 30 Javascript
vue实现同时设置多个倒计时
May 20 Vue.js
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中Date获取时间不正确怎么办
2008/06/05 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
canvas时钟效果
2017/02/16 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
python动态网页批量爬取
2016/02/14 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python文字转语音实现过程解析
2019/11/12 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
《影子》教学反思
2014/02/21 职场文书
车辆工程专业求职信
2014/06/14 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
黄石寨导游词
2015/02/05 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
电影开国大典观后感
2015/06/04 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
工作建议书范文
2019/07/08 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python