求改个小脚本的小问题(asp)

来源:百度知道 编辑:UC知道 时间:2024/05/06 13:23:41
为什么执行完上面的javascript后跳到right.asp?method=2还会执行下面的数据库操作????高手指点下,我想做的是个删除前的确认

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<script language="javascript">
var conf;
conf = confirm("你确认要删除文章么?");
if(!conf)
{
window.open("right.asp?method=2","right");
}
//为什么执行完上面的javascript后跳到rig

这是关于执行顺序的概念问题, 服务器端代码是在服务器端执行的, 而JS脚本和HTML内容, 是在客户端展现的, 客户端的内容,是要服务器端执行完毕后,才会从 WEB SERVER 发到 用户的浏览器的。

也就是说, 在你的 JS 执行前, 数据库操作的部分, 早就执行完毕了

function confirmfun()
{
var conf;
conf = confirm("你确认要删除文章么?");
if(!conf)
{
window.open("right.asp?method=2","right");
return false;
}
return true;
}

<input type="submit" id="deleteBtn" onclick="return confirmfun()">

window.open("right.asp?method=2","right");
改成
location.href="right.asp?method=2";试试

用ASP语句实现吧!二楼说的对,服务器的操作在JS之前,如果必须要这样操作,JS需要重新修改。