注册 登录
编程论坛 ASP技术论坛

在ASP中 JS关闭不了IE窗口 如何处理

kira007 发布于 2008-10-23 18:26, 2781 次点击
页面info.HTML 有一链接到 down.asp
用户没有登陆 跳转到 login.asp
登陆成功后 关闭 login.asp ,再跳转到 down.asp ,相关代码如下.....

在login.asp中有代码
<% dim username,pass,action
action=Trim(Request.QueryString("action"))
if action="login" then
username=strQC(Trim(Request.Form("username")))
pass=md5(strQC(Trim(Request.Form("password"))))
loginnum=SQLcount("user",username,pass)

select case loginnum
case"0"

response.write "<script LANGUAGE='javascript'>alert('Log in failed, please check your login name and password!');history.go(-1);</script>"

case"1"

response.write "<script LANGUAGE='javascript'>alert('Log in failed, please check your login name and password!');history.go(-1);</script>"

case"2"

session("username")=username
session.Timeout=300
response.Cookies("BizOpsTech")("username")=username
call uplogins(username)

%>

<script language="javascript">
window.opener=null;
window.open=("","_self");
window.close();
</script>

<%
response.redirect session("fileURL")
end select
end if

%>

登陆成功后 需要 跳转到  session("fileURL") 这个地址中 ,并关闭 当前 login.asp 的窗口,但是始终无法关闭,只能执行跳转!
把response.redirect session("fileURL") 屏蔽后,就可以执行关闭窗口了!
应该如何处理才能实行 跳转的同时 并关闭当前窗口。
16 回复
#2
nicechlk2008-10-23 20:31
不知我的想法可行不?前提,我并没有仔细看楼主的代码,只是谈谈自己的看法:
我在处理跳转页面时通常这样做:
target的值设为默认,在跳转到新的页面时不另开窗口,实现跳转的同时关闭当前窗口。
也就是说,我不知道先关闭当前窗口再跳转,或者跳转之后再关闭当前窗口,同我上面的方法有何不一样呢?
#3
nicechlk2008-10-23 20:47
另外,楼主为何用session("fileUrl")储存这个地址呢?是不是想实现登陆之后回到用户正在访问的页面?如果是,可以考虑这样的思路:
1、在登陆文件里(login.asp)定义一个变量(current_url),把用户当前的url记录下来(前提是用户当前正在访问的页面包含有登陆界面,这样变量获取的就是用户访问的当前页面)。
2、在登陆验证处理(login_modify.asp)时,获取login.asp的current_url,如果登陆成功则:.....
        response.write "<alert '登陆成功!'>"
        response.write "location.href='current.url';"
如此,应该可以达到楼主的目的吧。
个人想法,仅供参考!
#4
multiple19022008-10-23 22:41
我想,其实这个问题(用JS关闭IE窗口)是跟ASP没有一点关系的。

既然要在asp上分析它,那么思路大概是这样的:就是分析那段关键的script有没有传到客户端,如果没传是哪里的逻辑错误。至于某些太菜的人连script都不会写就不考虑了。
#5
hmhz2008-10-23 22:55
JS关闭浏览器,目前已经行不通了,IE早就已经把这个漏洞补上了,所以用JS关闭的时候浏览器都会弹出提示是否真的要关闭浏览器
#6
multiple19022008-10-23 23:02
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<input type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)">

我这里IE6可行
#7
hmhz2008-10-23 23:05
你那里可行是因为你的浏览器没有打补丁,我家里的电脑也没打补丁,所以我这里也可行,但我在公司的电脑里用你这个就不可行了,会弹出提示"是否真的要关闭"
#8
multiple19022008-10-23 23:07
不讨论js.....
#9
yms1232008-10-23 23:59
根据浏览器的不同或浏览器设置某些javascript就会弹出提示,比如用window.open打开的窗口就会在某些安装或设置了弹出窗口拦截的浏览器上进行体提示。
#10
月夜之瞳2008-10-24 11:16
嘻嘻 ALT+F4
#11
nicechlk2008-10-24 11:33
可能我是很菜吧,菜的连js代码都不会,幼儿园也就是刚毕业,所以我讲话都是不敢大嗓门,不像某些人,懂了一点点就义正言辞,帮别人解决点小问题像教练员似的高高在上,哈哈。。。

[[it] 本帖最后由 nicechlk 于 2008-10-24 11:36 编辑 [/it]]
#12
hmhz2008-10-24 13:33
楼上兄弟,不要见意,也许某些人说话的方式不同,但并没有恶意鄙视你,话又说回来了,人家说的话有是有道理的,你无法改变别人的思想,那你最好去改变自己的心态,毕竟你是需要帮助的,应该虚心点,你只要得到你想要的东西就行,别人的语气什么样的你就不用去在意了
#13
multiple19022008-10-24 13:36
[bo][un]nicechlk[/un] 在 2008-10-24 11:33 的发言:[/bo]

可能我是很菜吧,菜的连js代码都不会,幼儿园也就是刚毕业,所以我讲话都是不敢大嗓门,不像某些人,懂了一点点就义正言辞,帮别人解决点小问题像教练员似的高高在上,哈哈。。。

话说你别误解,我没说你js写错了。
我只是说,若是有人拿着js的问题跑到asp版来问,我们自然关注的是其中ASP的部分,关注程序的逻辑结构。具体到这个问题,为了完整地回答,万一有人js写得就是错的,那只能说他太菜。
#14
hmhz2008-10-24 13:45
楼上兄弟我怎么说你呢,唉~~~~~~`
#15
月夜之瞳2008-10-24 13:55
唉~~~
#16
nicechlk2008-10-24 16:10
不说这个事情了。我毕竟也是来论坛和大家共同学习的。
我只是想说,来论坛的兄弟们或许在编程上不如大家,然而,他们在别的地方或许要超过许多倍!
古人云:三人行,必有我师。每个人都有自己的特长。我们不应该拿自己的长处去比别人的短处,不是吗?
殊不知,论坛上每一个名字都是一个活生生的人!
所谓:帮助别人,快乐自己!如果有人觉得帮助别人是不快乐的,建议不要再来了!
我的话完了,谢谢大家!
#17
anlige2008-10-24 18:14
asp代码会先执行....
1