社区
ASP
帖子详情
javascript如何操作vbscript的变量?
doo_fu
2002-08-16 08:07:25
我在ASP中写了一个javascript函数,需要操作vbscript的变量和session变量,如何做?可以举个小例子吗?
...全文
43
5
打赏
收藏
javascript如何操作vbscript的变量?
我在ASP中写了一个javascript函数,需要操作vbscript的变量和session变量,如何做?可以举个小例子吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ssm1226
2002-08-16
打赏
举报
回复
ASP页面内VBScript和JScript的交互
亚普工作室
ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。
脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重不同的因素,同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问题,或某个脚本已经写成但用的却是另外一种脚本语言。
此时应该怎么办?是否需要用当前所用的脚本语言重写这些脚本?或者说,是否有可能在一种脚本语言中调用其它脚本语言的内置函数?本文要说明的就是在ASP应用中如何让VBScript脚本和JScript脚本交互以最大限度地获得两种脚本语言的特色支持。
一、VBScript和JScript的内置函数
在VBScript和JScript中,有大量的内置函数功能是相同或类似的。然而,在一种脚本语言中内置的函数并非总是在另外一种脚本语言中也有对应的函数。例如,VBScript提供了许多用于操作字符串和格式化数据的函数,这些函数在JScript中并不存在。这些函数包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理数组、字符串编码等的函数在VBScript中也没有定义,如join()、reverse()、pow()、位操作、escape()和unescape()等。
那么,如果在JScript程序中需要一个VBscript函数该怎么办呢?
二、异种脚本的互相调用
如果需要在JScript脚本中调用一个VBScript中内置的函数,则应该写一个VBScript用户定义函数(在这里调用VBScript内置函数),然后在JScript脚本中象调用公用JScript函数一样调用这个用户定义函数。
例如,如果要调用的VBSCript内置函数是FormatCurrency(),则可以声明如下自定义函数:
< SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
Function FormatValue(Value)
FormatValue = FormatCurrency(Value)
End Function
< /SCRIPT>
接下来在JScript代码中就可以象普通JScript函数一样调用FormatValue()了。用类似的方法也可以实现VBScript代码调用JScript函数。
应用同样的规则,我们可以在任何脚本内调用任何用户定义函数。不过,从JScript脚本内调用一个不带参数的VBScript过程(Sub)时应略加注意,此时在JScript中应该象调用一个不带参数的JScript函数一样调用它,如用foo()调用VBScript Sub foo过程。
三、数据共享
在某些情形下混合运用VBScript和JScript函数是非常有用的,但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以任意引用。
对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用,当从JScript中调用一个不带参数的VBScript对象的方法时,其调用方法也遵从JScript的调用规则,反之亦然。
四、数组管理
数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注意兼容方面的问题。
VBScript数组在JScript下可以用VBScript的符号引用,即用myArray(2)引用数组元素而不是JScript的数组元素引用符号myArray[2]。此外,还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray:
var Temp = new VBArray(myVBArray)
var myJSArray
myJSArray = Temp.toArray()
上述代码首先创建一个临时的VBArray对象,然后使用它的toArray()方法将自己转换为JScript数组。此后就可以象普通JScript数组一样使用myJSArray,如myJSArray[1]。但应当注意的是,toArray()方法将把一个多维的VBArray转换为一维的JScript数组。
从VBScript中引用JScript数组更为复杂。虽然在VBScript中我们可以直接访问JScript数组相关的方法和属性,但没有直接访问JScript数组的单个元素的方法。也就是说,我们可以在VBScript脚本中读取JScript数组的长度属性,如下所示:
x = myJSArray.length
但无法直接读取该数组的单个元素,下面的VBScript代码是不正确的:
x = myJSArray(3)
解决该问题的一个可行的方法是执行一个转换过程,如下面的代码所示,此处假定VBScript是缺省的脚本语言:
< %
Dim Temp
Dim myVBArray
Temp = myJSArray.join(", ")
myVBArray = Split(Temp, ", ")
%>
此处的JScript join()方法将数组myJSArray元素转换到一个以逗号为分割符的字符串,VBScript Split()函数将字符串转换为VBScript数组。注意这里我们是在VBScript环境下调用JScript的join方法。依照
meizz
2002-08-16
打赏
举报
回复
<script language=javascript>
var aa;
</script>
<script language=vbscript>
aa = "123456789"
</script>
<script language=Javascript>
alert(aa);
aa = "abcdefg"
</script>
<script language=vbscript>
msgbox aa
</script>
这个例子里你可以看到页面级的变量是可以互相赋值的,函数也是可以互相调用的。
swingcoder
2002-08-16
打赏
举报
回复
还可以存为cookie,在客户端应通用(不过没亲自试过).
ChinaOk
2002-08-16
打赏
举报
回复
就像楼上说的那样。客户端可以相互调用。
以前见过一个js和vbs交互使用的文章。讲了注意事项。你可以搜索
busiliao
2002-08-16
打赏
举报
回复
如果你的javascript和vbscript都是客户端脚本,哪你可以直接在两个脚本中调用变量,要在客户端调用服务器端变量,你只能取到其值,str=<%=session("")%>,在对str进行操作。
VBScript
中
变量
作用域
下午在写程序的时候,碰到个
变量
重定义的问题,具体是在一个函数中的两个地方定义了相同的
变量
,两个
变量
分别放在IF语句的两部分中,本来以为这两次定义在语句中不同的块,应该没有影响,然而在运行中IIS却提示
变量
重定义,把重复定义去掉即正确。 解决了问题之后突然想到在Fdream的blog看过一篇文章《
JavaScript
变量
无块级作用域》,似乎这两个是差不多的,在
VBScript
中
变量
同样没有块级作用域。 再次去看了那篇文章之后我也做了下试验,得到结果:在
VBScript
中,函数中定义的
变量
的作用域是整个函数,而不是块级,不管这个
变量
是在函数中哪个位置定义的。因此,函数中一个
变量
不管在函数的哪个位置
Javascript
与
vbscript
数据共享
如有纰漏之处,请指出,谢谢 1、普通全局
变量
在browser里,引用一个全局
变量
,可以有很多方法,你可以直接引用该
变量
,也可以用window.variable来引用全局
变量
,原因是因为全局
变量
属于window的窗体,但是当每新开一个窗口,浏览器会自动清空先前已有
变量
(也就是说,每个新开页面都是一个“有清白之身的web页”,因此在新开的窗口里是不可以引用之前定义的
变量
,如果要引用,可以变向获取,如通过URL的参数传递等方法来获取,但这是后话了)如: [removed] var global = “this is a global var.” [removed] <SCRIPT\u00a0LANGUAGE=
VBScript
电子教程
VBScript
电子学习教程运用asp结合
vbscript
模拟股票滚屏,关于
vbscript
与
javascript
如何传递
变量
JsScript
VbScript
脚本解析控件
JosunScript 脚本组件是一个采用ATL技术编写的高效稳定的脚本解析器。 能让你的CS模式程序(Vc、VB、Delphi、BC等)轻松解析
VbScript
,
JavaScript
脚本语言。 大大增强你的程序逻辑处理的灵活性和程序的交互能力,轻松实现从BS系统提供的页面接口获取数据信息。 最大程度实现程序功能的免编译(只要修改脚本文件即可),为你的用户提供“热插拔”式的升级。 尤其适合于各种流程化的程序设计(工作流函数的
操作
、呼叫中心系统IVR流程化的设计等等)。 本控件使用简便,开发者可根据本文档提供的例子根据自己的实际需求在例子上稍作修改即可。 主要的功能有: 1.加载脚本文件 2.获取脚本中的函数列表 3.获取脚本中的全局
变量
列表 4.按
变量
名称 设置、获取 脚本文件里的全局
变量
值 5.直接执行 文本、
变量
中设置的脚本代码 6.能获取文本脚本执行结束后脚本里面的
变量
返回值,返回给调用者,实现脚本技术与其他语言技术的交互. 7.按列表返回的函数、过程名称执行相应的函数、过程。自定义入口参数,并返回执行结果给调用者,实现脚本技术与其他语言技术的交互. 8.实现远程、本地 xml文件的解析,免去在程序内部编写复杂的xml
操作
类,尤其是像VB这样的程序, 可以大大节约开发时间(本压缩包内的VB的例子就是最典型最简单的解析xml的例子)。 9.可以利用xmlhttp实现asp、jsp等页面的数据的存取解析,轻松访问第三方的数据 10.利用强大的
VBScript
脚本技术可以实现数据库接口,轻松将程序中的
变量
写入第三方的数据库中 如果您正在被流程设计中繁杂的逻辑判断、为第三方提供数据接口而烦恼,如果你想在您的产品中嵌入 功能强大、高度灵活的脚本功能增强您的产品的竞争力,JosunScript控件可以助您一臂之力。
ASP超快速入门教程(1)
第1章 基础
操作
1. 初识网页 2. 动态网页和静态网页概述 3. ASP概述 4. IIS的安装和设置 5. 浏览ASP页面 6. 创建一个简单的ASP程序 第2章 利用脚本语言创建动态网页 7. 脚本语言概述 8.
VBScript
简介 9. 数据类型 10. 声明
变量
11. 命名的规则 12. 运算符 13. 流程控制语句 14.
JavaScript
简介 15. 基本结构和语法 16.
变量
规则 17.
JavaScript
流程控制语句 18. 总结
ASP
28,390
社区成员
357,068
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章