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 相关文章推荐
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
JS字符串截取函数实例
Dec 27 Javascript
jquery 使用简明教程
Mar 05 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
js实现产品缩略图效果
Mar 10 Javascript
Ionic + Angular.js实现图片轮播的方法示例
May 21 Javascript
关于webpack代码拆分的解析
Jul 20 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
Sep 08 Javascript
如何更好的编写js async函数
May 13 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
vue实现表格合并功能
Dec 01 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获取网卡地址的代码
2008/04/09 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
Javascript 对象的解释
2008/11/24 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python 实现登录网页的操作方法
2018/05/11 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
电子商务专业个人的自我评价
2013/11/19 职场文书
化学教师自荐信范文
2013/12/28 职场文书
外国人聘用意向书
2014/04/01 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2014年减负工作总结
2014/12/10 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书