他上面不是在 window.open() 里指明了 top=10000 的吗? 其实这个问题很好解决的:
<script language="javascript">
function window.onbeforeunload() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
window.event.returnValue = ""; //这里可以放置你想做的操作代码
}
}
</script>
<script language="javascript">
function window.onbeforeunload() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
window.event.returnValue = ""; //这里可以放置你想做的操作代码
}
}
</script>
还有可以解释下var b = n > document.documentElement.scrollWidth-20?
scrollWidth滚动条宽度
我晕 ~
这个值是如何得出的,大家帮棒忙吧,是否与分辨率有关系呢?
分不够可以加的。
function window.onbeforeunload() //author: meizz
{
//鼠标位置离浏览器左边框的距离
var n = window.event.screenX - window.screenLeft;
//document.documentElement.scrollWidth:浏览器宽度,包括滚动条,即document.body.offsetWidth
//即判断,鼠标与浏览器右边距是否小于20,若关闭时,这个距离小于20,则认为鼠标是在关闭按钮上水平区域里
var b = n > document.documentElement.scrollWidth-20;
//window.event.clientY判断,关闭时鼠标是否位于浏览器client区域之上(垂直区域里)
//与b条件联合,可以粗略的判断为是否关闭时,鼠标位于关闭按钮区域
//若按住alt键,则总提示判断
if(b && window.event.clientY < 0 || window.event.altKey)
{
window.event.returnValue = ""; //这里可以放置你想做的操作代码
}
}
</script>这种方式的判断依据即为离开页面时,鼠标位置是否在所拟定的关闭区域内。有个遗憾,垂直区域因为有工具条,菜单栏,故无法精确判断。10101这个值可能没台机器都不一样,这是窗口关闭时,窗口注销后抛出的一个离开值,只有ie有。不必过于认真。
http://blog.csdn.net/lovelxj/archive/2005/02/01/276890.aspx
它判断>9000,是否表明窗口关闭时,窗口注销后抛出的一个离开值有规律呢???