主题:  Asp如何提取JavaScript的变量

Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
#12004/12/8 13:13:35
本人有几个问题:
1)Asp如何提取javascript的变量

2)javascript虽可以接收Asp的变量,但只能接收英文的数值,中文的数值就会出错。

请大侠帮助,多谢了!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620

Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
#32004/12/8 15:05:42
多谢答复:
1) javascript是可以取得Asp的变量或数值,却不能逆转于Asp调用javascript
2) 您推介的那些帖也不能解决中文的问题!这个问题很棘手,正如FlashMX调用外部中文字符时总是乱码,没办法解决!!反而Flash MX 与 javascript是友好关系,然而Asp与Flash MX 、javascript反目成仇,javascript对Asp却没有半点敌意,哎作为人,处于这种关系当中,该如何是好!!
(不知这比喻是否可以有转机呢?)



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#42004/12/8 15:10:20
1.你还是没有弄清楚概念.客户端和服务器端分开执行的概念很重要.有了这个认识,你才可能去正确的知道怎么在两者之间传递数据

2.我不明白你说的中文是什么问题.



不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
#52004/12/9 14:26:42
是啊,哪个先执行,哪个后执行,楼主你要搞清楚了

ASP代码编译好以后,才论的到JS发挥作用。



Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
#62004/12/10 16:46:14
可以了,也不要说得太复杂,我听不懂的,不好意思,好就以下我举个例子:

<%
    AspX="123" 'Asp变量赋值
%>
<script language="javascript">    
    JavaX=<%=AspX%> //javascript接收Asp变量
    document.write("Asp:" + JavaX +"<BR>" ) //输出成功
    JavaX="从javascript发送到Asp的变量" //javascript变量赋值
</script>
<%

JavaX= "<script language='javascript'>document.write(JavaX)</script>" 'Asp接收javascript的变量
Response.write "JavaX:" & JavaX //也输出成功
%>

以上程序经测试是成功的,可使Asp和javascript内的变量互相传递,但可惜当AspX是等于中文字段的话,javascript的输出就出问题,这又怎么办呢,请教请教!!



编辑历史:[此帖最近一次被 Zooi 编辑过(编辑时间:2004-12-10 16:56:25)]


缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#72004/12/10 17:05:34
首先说的是,你的代码没有错误,而且很正确.我所要指出的只是你认识上的一些误解.



这个不是传递,虽然结果看起来是这样,但是是完全不同的概念

上面的代码,对于服务器来说,只是输出一个字符串,而不是和js交互
对于客户端来说,只是给一个js变量赋值,而不是和asp交互(这个时候已经不存在asp了)

为什么中文不行.
因为如果是中文的话,最后输出的js脚本是类似:

JavaX = 中文

在js中,字符串是需要引号的,所以出错.不仅是中文出错,英文也会出错,只有数字可以当整型变量所以不会错.
解决的方法是:
JavaX="<%=AspX%>";


你上面所用的方法是很常用的在客户端和服务器端传递数据的方法,但是不是交换变量.因为两种语言是在不同的地方执行的,不会同时存在,所以交换也是不可能的.

再说一次:这个不是js和asp交换变量.有了这个概念会对你的程序有很严重的误导

编辑历史:[此帖最近一次被 allinhands 编辑过(编辑时间:2004-12-10 17:15:54)]


蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#82004/12/11 3:28:10
ASP是不可能传递变量给JS的。但是ASP能在服务端象写HTML代码一样,能写出JS代码,告诉客户端,也就是浏览器去如何去实现用ASP写的JS代码


非常大鱼