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 div 遮罩层封锁整个页面
Jul 10 Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 Javascript
什么是 AngularJS?AngularJS简介
Dec 06 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
Vue 组件参数校验与非props特性的方法
Feb 12 Javascript
小程序实现多列选择器
Feb 15 Javascript
node.js实现带进度条的多文件上传
Mar 27 Javascript
webpack的tree shaking的实现方法
Sep 18 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python连接数据库的方法
2017/10/19 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python实现文法左递归的消除方法
2020/05/22 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
互联网创业计划书的书写步骤
2014/01/28 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
安全例会汇报材料
2014/08/23 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
python井字棋游戏实现人机对战
2022/04/28 Python