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 相关文章推荐
11款基于Javascript的文件管理器
Oct 25 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
jquery实现简单Tab切换菜单效果
Jul 17 Javascript
JavaScript从0开始构思表情插件
Jul 26 Javascript
JavaScript中创建对象的7种模式详解
Feb 21 Javascript
JS的Ajax与后端交互数据的实例
Aug 08 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
Jul 19 Javascript
JavaScript 链表定义与使用方法示例
Apr 28 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
微信access_token的获取开发示例
2015/04/16 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
多版本Python共存的配置方法
2017/05/22 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
Linux下多个Python版本安装教程
2018/08/15 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
《值日生》教学反思
2014/02/17 职场文书
意向书范本
2014/07/29 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
文言文辞职信
2015/02/28 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python