firefox得到event了,但是为何event.clientX还是为undefined? function(e){ if(!e) e = window.event; alert(e); alert(e.clientX + " " + e.clientY); ...}我使用如上的传参数形式,在firebug下看到e是unload,这说明已经得到了event ,但是为何调用e.clientX 却得到undefined 还有 e.clientX<0&&e.clientY<0 这是什么意思? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <div id="handler" style="position:absolute;width:100px;height:100px;background:#efefef;border:1px solid #ccc;"></div><script type="text/javascript"> var handler = document.getElementById('handler'); document.onmousemove = function(event){ var e = event ? event : window.event; handler.style.top = e.clientY + 20 + 'px'; handler.style.left = e.clientX + 20 + 'px'; }</script> 你在搞关闭浏览器的提示(剔除刷新影响)吧?1、别用onunload(), 用onbeforeunload();2、FF下就是有这个问题,它抓的事件不是MOUSE的事件,而是onbeforeunload,或onunload,所以判断鼠标位置剔除刷新就没可能了 <!--测试了下木有问题--><span id="show"></span><script type="text/javascript">window.document.onmousemove=function(e){ e=e||window.event; document.getElementById("show").innerHTML="X:"+e.clientX+"Y:"+e.clientY; }</script> ff不支持window.event,只支持event firefox 判断鼠标位置剔除刷新就没可能了 ? 不会吧? 你不是悲剧了? 那腾讯或是那些大网站是靠session过期来判断在线人数的? 我用onbeforeunload了,也进入了remove方法,我的remove方法是这样写的:function removeline(e){ if(!e) { e = window.event; } if(e.clientX<0&&e.clientY<0) { alert("remove 3"); document.write('<iframe width="100" height="100" src="remove.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>'); alert("remove 4"); document.all.WebBrowser.ExecWB(45,1); alert("remove 5"); }}我在360浏览器下(或者IE6下)关闭浏览器,alert语句根本不执行,这是怎么回事? <script language="javascript"> window.onbeforeunload=function() { alert("1"); alert("2"); alert(event.clientX); alert("3"); alert("4"); }</script><html><body>fuck</body></html>自己在360浏览器下做了测试,如果是刷新5个alert都执行,但是关闭浏览器的话就好像都不执行了 ,只听到一声alert的声音 然后没了 不知道这个该怎么解释 年轻就是气盛,赞一个。不过太过气盛难免偏颇,呵呵。顺便说下,“靠session过期来判断在线人数”和我说的根本无关。我说的是:firefox 判断鼠标位置剔除刷新就没可能了 9楼才进入问题的核心。google或本站查询吧。这个问题我以前没少回帖 window.onbeforeunload = function(){ var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth-20; if(b && window.event.clientY < 0 || window.event.altKey){ alert("是关闭而非刷新"); window.event.returnValue = "是否关闭?"; }else{ alert("是刷新而非关闭"); } }这个能区分刷新和关闭了,但是它只对IE6有用,对360浏览器无效,不知道为什么 你这个区分刷新和关闭的问题,我们以前没少回帖。。不行就是不行区分用的是ie上的 特性,也可以说是bug。就算是360上有用了。还有chrome ff opera等。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> </head> <body> <button onclick="test()">test</button> </body></html><script type="text/javascript"><!--function getEvent(){ if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null;} function test(){ e=getEvent(); alert(e.clientX);}//--></script> 如果firefox在不支持event的话,最好的解决办法就是在事件参数里面加上event的参数即可,还有IE不支持eventX,IE,fireFox两者都支持clientX function showcontent(){ var evt=SearchEvent(); alert(evt);}function SearchEvent(){ func=SearchEvent.caller; //回调函数:回去调用showcontent()方法 while(func!=null) { var arg0=func.arguments[0]; if(arg0) { if(arg0.constructor==Event) // 如果就是event 对象 return arg0; } func=func.caller; } return null;} FF需要另行判断,你用这个方法就完美解决了。document.onmousemove = function(evt) {if (typeof evt == 'undefined') {myEvent = window.event;} else {myEvent = evt;}if(myEvent.clientX){posX = myEvent.clientX+document.body.scrollLeft;posY = myEvent.clientY+document.body.scrollTop;}else if(myEvent.pageX){posX = myEvent.pageX+window.pageXOffset;posY = myEvent.pageY+window.pageYOffset;}} JSP数据传递和数据库连接问题 一个可能很傻的问题.. 关于EXT的 求救高手! ●●●●●●●●●●●●●●●●●●●●●●●●●●●作者这样写的目的是什么呢???? 小弟新手,问个很菜鸟的问题 哭泣的F c k e d i t or!最一个问题啊~~~希望能得到大家的帮助啊!555 如何实现这个动作,请进 求助```关于网页复制 如何实现???????? karma(无为)!请帮忙! 怎么在提交表单之前检查文件名字的大小 懂谷歌方面的进
<script type="text/javascript">
var handler = document.getElementById('handler');
document.onmousemove = function(event){
var e = event ? event : window.event;
handler.style.top = e.clientY + 20 + 'px';
handler.style.left = e.clientX + 20 + 'px';
}</script>
1、别用onunload(), 用onbeforeunload();
2、FF下就是有这个问题,它抓的事件不是MOUSE的事件,而是onbeforeunload,或onunload,所以判断鼠标位置剔除刷新就没可能了
<!--测试了下木有问题-->
<span id="show"></span>
<script type="text/javascript">
window.document.onmousemove=function(e){
e=e||window.event;
document.getElementById("show").innerHTML="X:"+e.clientX+"Y:"+e.clientY;
}
</script>
firefox 判断鼠标位置剔除刷新就没可能了 ? 不会吧? 你不是悲剧了? 那腾讯或是那些大网站是靠session过期来判断在线人数的?
我用onbeforeunload了,也进入了remove方法,我的remove方法是这样写的:
function removeline(e){
if(!e) {
e = window.event;
}
if(e.clientX<0&&e.clientY<0) {
alert("remove 3");
document.write('<iframe width="100" height="100" src="remove.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
alert("remove 4");
document.all.WebBrowser.ExecWB(45,1);
alert("remove 5");
}
}我在360浏览器下(或者IE6下)关闭浏览器,alert语句根本不执行,这是怎么回事?
<script language="javascript">
window.onbeforeunload=function() {
alert("1");
alert("2");
alert(event.clientX);
alert("3");
alert("4");
}
</script><html>
<body>
fuck
</body>
</html>自己在360浏览器下做了测试,如果是刷新5个alert都执行,但是关闭浏览器的话就好像都不执行了 ,只听到一声alert的声音 然后没了 不知道这个该怎么解释
window.onbeforeunload = function(){
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey){
alert("是关闭而非刷新");
window.event.returnValue = "是否关闭?";
}else{
alert("是刷新而非关闭");
}
}
这个能区分刷新和关闭了,但是它只对IE6有用,对360浏览器无效,不知道为什么
你这个区分刷新和关闭的问题,我们以前没少回帖。。不行就是不行区分用的是ie上的 特性,也可以说是bug。就算是360上有用了。还有chrome ff opera等。
<html>
<head> </head> <body>
<button onclick="test()">test</button>
</body>
</html>
<script type="text/javascript">
<!--function getEvent()
{
if(document.all)
return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0)
{
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
{
return arg0;
}
}
func=func.caller;
}
return null;
} function test()
{
e=getEvent(); alert(e.clientX);
}
//-->
</script>
,还有IE不支持eventX,IE,fireFox两者都支持clientX
{
var evt=SearchEvent();
alert(evt);
}
function SearchEvent()
{
func=SearchEvent.caller; //回调函数:回去调用showcontent()方法
while(func!=null)
{
var arg0=func.arguments[0];
if(arg0)
{
if(arg0.constructor==Event) // 如果就是event 对象
return arg0;
}
func=func.caller;
}
return null;
}
if (typeof evt == 'undefined') {
myEvent = window.event;
} else {
myEvent = evt;
}
if(myEvent.clientX){
posX = myEvent.clientX+document.body.scrollLeft;
posY = myEvent.clientY+document.body.scrollTop;
}
else if(myEvent.pageX){
posX = myEvent.pageX+window.pageXOffset;
posY = myEvent.pageY+window.pageYOffset;
}
}