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>