请问,我用asp调用后缀为.INC的文件,但在javascript中如何调用该文件的函数?
请问,我用asp调用后缀为.INC的文件,但在javascript中如何调用该文件的函数?
能不能说详细点,万分感激
问题点数:50、回复次数:6Top
1 楼ronghuan(真难为你了)回复于 2002-09-10 11:21:27 得分 0
<Script language="javascript">
<!--
function py(it)
{
var chrr="";
var chrs="";
chrr=document.all.sbmc.value;
chrs=c(chrr);
document.all.sbmc.value=chrr+chrs
}
//-->
</script>
想调用.INC文件里的C函数,如何用啊Top
2 楼hjbwt(地主)回复于 2002-09-10 11:29:12 得分 10
好像不能调用吧,javascript一般在客户端运行(如果没有runat=server),而asp以及包括的文件是在服务器上的,一般不能包括.如果正要用,我可以提供一种提示,不知行不行,试试吧
<%
response.write "<script language=javascript>"
response.write aaa(bbb) //aaa时函数,bbb时参数,asp中的变量
response.write "</script>"
%>
仅作为参考Top
3 楼hjbwt(地主)回复于 2002-09-10 11:31:34 得分 10
把上面的函数全再<%%>之间用response.write 写出来,就是调用a的时候用asp语法,试一试Top
4 楼ronghuan(真难为你了)回复于 2002-09-10 11:35:58 得分 0
<%
Set d = CreateObject("Scripting.Dictionary")
d.add "A",-20319
………………
d.add "ZUO",-10254
function g(num)
if num>0 and num<160 then
g=chr(num)
else
if num<-20319 or num>-10247 then
g=""
else
a=d.Items
b=d.keys
for i=d.count-1 to 0 step -1
if a(i)<=num then exit for
next
g=b(i)
end if
end if
end function
function c(str)
c=""
for i=1 to len(str)
c=c&g(asc(mid(str,i,1)))
next
end function
' for i=1 to len(str) '取拼音首字母
' bfy=left(g(asc(mid(str,i,1))),1)
' c=c&bfy
' next
response.write c(request("hz"))
%>
<form method=post>
请噪此处输文此<input name=hz>
</form>
如何将此函数改成javascript能运行的啊,请高手指点!!!!Top
5 楼ssm1226(雨中人(虚心学习))回复于 2002-09-10 11:38:59 得分 10
1、<script language=javascript src="test.inc"></script>//注意,此处include文件必须符合js文件格式
2、span id=showImport></span>
<IE:Download ID="oDownload" STYLE="behavior:url(#default#download)" />
<script>
function onDownloadDone(downDate){
showImport.innerHTML=downDate
}
oDownload.startDownload('test.inc',onDownloadDone)
</script>
Top
6 楼lins(Anders*小明)回复于 2002-09-10 11:43:41 得分 20
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方法。依照此例,我们可以通过自定义VBScript函
数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的
转换。
、小结
在同一个ASP工程内灵活选用不同脚本语言具有许多优点,这些脚本之间的交互能
力更为开发者集成不同语言所提供的内置函数和其它功能带来了更多的机会,同时也使
得实现既可用于VBScript也可用于JScript环境的通用脚本库成为可能。
--
**************************************
* 自古英雄唯寂寞 *
* 谁人懂我 *
* lins studio copyright *
* *
**************************************Top




