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 相关文章推荐
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
Nov 28 Javascript
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
使用js 设置url参数
Jul 08 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
javascript 10进制和62进制的相互转换
Jul 31 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 Javascript
canvas实现图像放大镜
Feb 06 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
Web安全之XSS攻击与防御小结
Dec 13 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
杏林同学录(六)
2006/10/09 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
PHP 验证码的实现代码
2011/07/17 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
python笔记(2)
2012/10/24 Python
python实现通过shelve修改对象实例
2014/09/26 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Python检查ping终端的方法
2019/01/26 Python
详解如何减少python内存的消耗
2019/08/09 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Keras搭建自编码器操作
2020/07/03 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
求职毕业生自荐书
2014/02/08 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
长征观后感
2015/06/09 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
改进工作作风心得体会
2016/01/23 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript