<script language=javascript>
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
leave();
}
}
</script>
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
leave();
}
}
</script>
解决方案 »
- 下拉框特效,去掉form后,可以正常显示,加上就不行了,请问原因?
- 求带关闭效果的滑动门!
- onclick事件不响应,再次请教!
- js代码求助?
- 如何获得对象数组的长度?
- 刚才那个生僻的问题,虽然已经结贴,后来发现两个答案事错的!
- 如何設置dropdownlist的邊框及滾動條的顔色?在線等
- [原创]FLASH文件提取下载工具
- 请教一个字符串替换的问题
- 求教一个简单问题!如何比较一个数组,并安顺序排列
- 问个可能荒诞的问题:能不能用javascript和cookie做一个留言内容保存在本机的留言本?
- 如何判断c:\temp下存在222_xxx.doc或者222_bbb.xsl(也就是以"222_"开头的文件)是否存在?
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)这句话
判断的原理是什么?
event.clientX>document.body.clientWidth&&event.clientY<0 这是你点击X关闭时的特征
event.altKey 判断你是用 Alt+F4 关闭
其实这个判断还是很不完善的, 比如最小化时用鼠标点击在关闭时就判断不出来.不过有了这两大判断也就基本能够满足你的要求了
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
<title></title>
<script language="JavaScript">
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
logout();
}
}
function logout()
{
window.open
("<%=request.getContextPath()>/logout.jsp","","status=no,width=100,height=100");
}
</script>
</head>
<frameset rows="82,*,30" framespacing="0" border="0" frameborder="0" leftmargin="0" topmargin="0">
<frame name="top" scrolling="no" noresize src="<%=request.getContextPath()%>/top.jsp" frameborder=1>
<frameset cols="165,*" id=testframeset frameborder=1 >
<frame name="left" src="<%=request.getContextPath()%>/tree/left.jsp" noresize scrolling="auto" target="main" frameborder=1>
<frame name="main" src="<%=request.getContextPath()%>/main.jsp" frameborder=1 style="Border-left:none;bordercolordark:#FFFFFF; bordercolorlight:#999999">
</frameset>
<frame name="bottom" scrolling="no" noresize src="<%=request.getContextPath()%>/bottom.jsp" frameborder=1>
<noframes>
<body> <p>此网页使用了框架,但您的浏览器不支持框架。</p> </body>
</noframes>
</frameset>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<script language="javascript">
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){
alert("close")
}
else{
alert("refresh")
}
}
</script>
</head>
<frameset rows="80,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="top.htm" name="topFrame" scrolling="NO" noresize >
<frameset cols="80,*" framespacing="2" frameborder="yes" border="2" bordercolor="#0000FF">
<frame src="left.htm" name="leftFrame" scrolling="NO" noresize>
<frame src="main.htm" name="mainFrame">
</frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>
这个判断式不能生效, 所以你得改一下:<script language="JavaScript"><!--
function window.onbeforeunload()
{
if(event.clientX>360&&event.clientY<0||event.altKey)
{
window.event.returnValue="确定要退出本页吗?";
}
}
//--></script>
<frameset rows="100, *">
<frame src=tt.htm>
<frame src=ttt.htm>
</frameset>
修改后的脚本确实在框架中好使了,但是存在这种情况,即使鼠标在浏览器的外边,按f5刷新也执行 window.event.returnValue="确定要退出本页吗?" 这句话。
我后来又改了改把框架都改成了iframe也一样。我在把框架改成iframe以后,对javascript增加了一些东西
var xx = document.body.clientWidth+19
if(event.clientX>document.body.clientWidth&&event.clientX<=xx&&event.clientY<0||event.altKey){
window.event.returnValue="确定要退出本页吗?"; }
这样的话可以限制鼠标的横坐标,但是鼠标的纵坐标还是个问题,因为ie上的工具栏,链接栏等都可能出现或不出现,这样的话,单纯用event.clientY<0就可能造成鼠标在IE的外边并且是上方的时候按f5也执行 window.event.returnValue="确定要退出本页吗?"; 这句话,请问梅大侠,还有没有能将鼠标的纵坐标限制在x的上方的条件。
另外还有一问题,在框架页中不能用body,那如果现在框架页中得到类似width,height这样的属性是不是不行?