如何将JS的变量值传递给ASP变量

JavaScript027

如何将JS的变量值传递给ASP变量,第1张

首先要明确两点:

1、asp是运行在服务器端的,js是运行在客户端即浏览器中的;

2、执行顺序是先asp,然后才是js

因此,要想把js的变量值传递给asp变量,就要把当前页面重新刷新运行一次,同时把js的变量值作为url的参数传递给后台的asp代码,然后asp的变量再通过request对象获取即可。比如:

<%

if request("abc")<>"" then

abc=request("abc")'这个abc是asp变量

response.write "js传递的变量内容为:" &abc

else

%>

<script>

var abc=123 //这个abc则是js变量

location.href="?abc="+abc

</script>

<%

end if

%>

因为asp代码都是包含在<% '这里是asp代码.... %>

所以在js中引用其变量也是使用<%%>直接包含

例如:

<script>

var a = <% =b 'b是asp代码中的变量 %>

</script>

asp:

<%

dim b

b = 5

%>

测试:

因为asp是在服务器端运行,而js是在浏览器端运行的,所以当服务器在解析asp脚本的时候无法调用js变量。

要想在asp中使用js的变量,只能通过传参的方式传递给服务器,例如

<script type="text/javascript">

function getUrlParms(code){

var reg = new RegExp("(^|&)"+ code +"=([^&]*)(&|$)")

var r = window.location.search.substr(1).match(reg)

if(r!=null)

return unescape(r[2])

return null

}

<%

if Request.QueryString("id") = "" then

%>

var id = getUrlParms("code")

location.href = location.href + "?id=" + id

<%

else

response.Redirect "/download=" & Request.QueryString("id")

end if

%>

</script>