日期:2014-05-17  浏览次数:20878 次

我很迷惑...asp和js在一起不懂
如何和js一起合作呢?比如下面的语句
<script   language=javascript>
function   delete()
  {
 
if(confirm( "确认要删除? ")==1)
{
  <%
if   request( "id ") <> " "   then
sql= "delete   from   article   where   id= "&request.querystring( "id ")& " "
OBJConn.execute(sql)
response.write   " <p   align=center> <a   href=admin.asp?pagenum= "&request.querystring( "pagenum ")& "> 已经删除!返回管理 </a> </p> "
response.end
end   if
Rs.close
set   rs=nothing
OBJConn.close
set   OBJConn=Nothing
%>
location.reload();
}
}
</script>
为什么我放在什么地方就在什么地方执行,而不是点击带有onclick= "delete() "的标签作为事件执行呢?比如我里面写一个response.redirect( "xxx.xxx "),那么打开页面直接就去了xxx.xxx,而且为什么不执行confirm( "确认要删除? ")?并且在 <%%> 内部,执行的时候是按照vbscript还是javascript?如何将asp代码做入事件?而且什么时候和js配合使用?asp内部的if   else   then等语句是不是vbscript?这个是客户端还是服务器端执行的?是否会造成非ie用户不能正常执行?

------解决方案--------------------
你的问题好多, <%%> 里面的东西是在服务器上执行的,服务器上默认的脚本是vbscript 通常是用response.write()的方式动态输出js
------解决方案--------------------
比如我里面写一个response.redirect( "xxx.xxx "),那么打开页面直接就去了xxx.xxx,而且为什么不执行confirm( "确认要删除? ")?


这个还用说>??? response.redirect 就是直接跳转到指定的 页面
不会 给你 提示信息 即使你写了

 以前我也遇见过 
比如 当删除成功 提示

alert( "删除成功 ")
response.redirect( "??? ")

上边是没有提示信息的

如果 你确实要实现不要用这个 用JS
winow.location( "???? ") 这样就可以提示你了 

------解决方案--------------------
可以通过ASP生成JS
<%
response.write " <script> "
response.write "alert( 'test ') "
response.write " </script> "
%>

asp是服务器代码,js是客户端代码,服务器端的代码先执行,生成客户端代码,然后再执行客户端代码.


所以把asp代码写在js代码里面,就只有是赋值的情况

<%
dim text
text = "test "
%>
<script>
var a = " <%=text%> "
</script>

如果必须要将一个 js 里定义的变量传个服务器,那就需要用到

try{
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
saveXML = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
saveXML = new ActiveXObject( "Microsoft.XMLHTTP ");
}
------解决方案--------------------
补充一点,结合一开始说的 可以通过asp生成js代码,来控制js的执行顺序