如何把一个js变量传递给asp变量

JavaScript023

如何把一个js变量传递给asp变量,第1张

asp运行于后台服务器,js运行于前台浏览器,asp先于js运行,因此要想把js变量的值传递给asp,就要重新启动一个http连接,这就会造成当前页面重新刷新(或者新开一个页面),就跟表单提交一样。下面是个例子:

<script>

var x = 100//要把这个变量传递给asp

location.href = "?x="+x//重新打开当前页面(附加参数)

</script>

<%

if request("x")<>"" then x = request("x")

'这样asp就获得了这个js传来的值,当然是在页面刷新以后

%>

如果是反过来asp的变量传递给js,那就简单的多了,无须刷新,直接赋值:

<%

x = 100 '要把这个变量传递给js

%>

<script>

var x = <%=x%>//这样js就直接获得了这个变量的值

</script>

答案是无法实现,因为你的逻辑出了问题。

你所看到的本页(asp页面)是服务器后台已经解释后发送到客户端的,也就是说,asp的脚本先被执行了,到了客户端JS脚本才被执行。

所以说,JS是不能够给本页(asp页面)传任何参数的。

但是,你可以试试通过变通的方式。因为通过JS是可以传递参数到其它的asp脚本的,但绝对不是当前所在的脚本。

js是在客户端执行的,asp是在服务器端执行的;

asp要想使用客户端js的变量只能通过form方式或url方式回传给asp页面,比如用Ajax;

如果让js在服务端执行(runat='server'),那么asp就可以直接调用了,比如

<script language='javascript' type='text/javascript' runat='server'>

function getDecodeCoordinate(str){var decodelat=......return decodelat}

</script>

<%decodelat = getDecodeCoordinate(y2)%>