CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

事件捕获脚本,转换成IE与FF都通用的代码

楼主zhangxf(反我恕)2006-03-06 20:43:52 在 Web 开发 / JavaScript 提问

<SCRIPT   language="javascript"   event=onmouseup   for=document>  
  if(event.button==1   &&   drages){  
  document.getElementById("oneDiv").style.cursor='';  
  setChangeTime=true;  
  }  
  drages   =   false;  
  </SCRIPT>  
   
  <SCRIPT   language="javascript"   event=onmousemove   for=document>  
  if(event.button==1   &&   drages){  
  xCenter   =   x   ;//中心点的x坐标  
  yCenter   =   y;//中心点的y坐标  
  setChangeTime=false;  
  }  
  return   false;  
  </SCRIPT>  
   
  <SCRIPT   language="javascript"   event=onmousedown   for=oneDiv>  
  if(event.button==1){  
  x   =   event.clientX;  
  y   =   event.clientY;  
  document.getElementById("oneDiv").style.cursor='move';  
  setChangeTime=false;  
  drages   =   true;    
  }  
  </SCRIPT>  
  请问如何将上面的这些事件捕获代码转换成在IE和FixFox下都能正常运行的脚本  
  其中涉及到对一些全局参数的调用代码已经省却  
  给足分!!!!  
  问题点数:100、回复次数:8Top

1 楼ice_berg16(寻梦的稻草人)回复于 2006-03-06 21:38:42 得分 50

<script   type="text/javascript">  
  document.onmouseup   =   function(event){  
  event   =   window.event   ||   event;  
  btn   =   event.button   ||   event.which;  
  if(btn==1   &&   drages){  
  document.getElementById("oneDiv").style.cursor='';  
  setChangeTime=true;  
  }  
  drages   =   false;  
  }  
   
  document.onmousemove   =   function(event){  
  event   =   window.event   ||   event;  
  btn   =   event.button   ||   event.which;  
  if(btn==1   &&   drages){  
  xCenter   =   x   ;//中心点的x坐标  
  yCenter   =   y;//中心点的y坐标  
  setChangeTime=false;  
  }  
  return   false;  
  }  
   
  document.getElementById('oneDiv').onmousedown   =   function(event){  
  event   =   window.event   ||   event;  
  btn   =   event.button   ||   event.which;  
  if(btn==1){  
  x   =   event.clientX;  
  y   =   event.clientY;  
  document.getElementById("oneDiv").style.cursor='move';  
  setChangeTime=false;  
  drages   =   true;  
  }  
  </script>Top

2 楼kangqin(小康)回复于 2006-03-06 21:48:00 得分 20

<SCRIPT   language="javascript"   event=onmouseup   for=document>  
  var   isIE=navigator.appName.indexOf("Microsoft")!=-1?true:false;  
  document.body.onmouseup=function(e)  
  {  
  if(isIE)  
  e=event;  
  if(e.button==1   &&   drages)  
  {  
  document.getElementById("oneDiv").style.cursor='';  
  setChangeTime=true;  
  }  
  drages   =   false;  
  }  
   
  document.body.onmouseover=function(e)  
  {  
  if(isIE)  
  e=event;  
  if(e.button==1   &&   drages)  
  {  
  xCenter   =   x   ;//中心点的x坐标  
  yCenter   =   y;//中心点的y坐标  
  setChangeTime=false;  
  }  
  return   false;  
  }  
   
  var   oneDiv=document.getElementById("oneDiv");  
  oneDiv.onmousedown=function(e)  
  {  
  if(isIE)  
  e=event;  
  if(e.button==1)  
  {  
  x   =   e.clientX;  
  y   =   e.clientY;  
  oneDiv.style.cursor='move';  
  setChangeTime=false;  
  drages   =   true;    
  }  
  }  
  </SCRIPT>  
  Top

3 楼zhangxf(反我恕)回复于 2006-03-06 22:07:51 得分 0

非常感谢楼上的两位!  
  ice_berg16(寻梦的稻草人)   :您的代码我测试过了,在FireFox下不能正常运行!  
   
  错误:   uncaught   exception:   [Exception...   "Component   returned   failure   code:   0x80004005   (NS_ERROR_FAILURE)   [nsIDOMWindowInternal.focus]"     nsresult:   "0x80004005   (NS_ERROR_FAILURE)"     location:   "JS   frame   ::   chrome://tabextensions/content/tabextensions.xml   ::   setFocus   ::   line   1179"     data:   no]Top

4 楼ice_berg16(寻梦的稻草人)回复于 2006-03-07 08:16:06 得分 0

你给的代码不全,我也无法测试.Top

5 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-07 08:20:18 得分 10

ie6使用的是ie事件模型,FF使用的是w3c标准事件模型。不兼容,最烦这个。Top

6 楼xuzuning(唠叨)回复于 2006-03-07 08:20:33 得分 10

见http://community.csdn.net/Expert/TopicView.asp?id=4406701  
  注释很详细Top

7 楼mingxuan3000(铭轩)回复于 2006-03-07 08:37:30 得分 0

markTop

8 楼meizz(梅花雪)回复于 2006-03-07 09:30:01 得分 10

<body><SCRIPT   LANGUAGE="JavaScript">  
  document.onmousedown   =   function(e)     //用这种方式比for=document更好些。  
  {  
          e   =   e||event;  
          var   b   =   e.which   ||   e.button;  
          if(b==1)  
          {  
                  var   x   =   e.clientX;  
                  var   y   =   e.clientY;  
                  alert("X:"+   x   +"   Y:"+   y);  
          }  
  }  
  </SCRIPT>Top

相关问题

  • SQL脚本捕获出错信息的问题,急~~!!
  • TWebBrowser如何捕获JS脚本对网页位置的改变?
  • 捕获ie事件一问
  • IE 不提示脚本出错
  • 怎样捕获IE的事件?
  • 脚本
  • 在网页脚本中如何屏蔽IE上的快捷鍵?????
  • IE安全还是脚本自身问题?
  • 有关IE与NetScape的脚本于HTML不一致问题
  • 我的IE,javascript脚本不能运行,请帮忙。

关键词

  • 代码
  • ie
  • 事件
  • failure

得分解答快速导航

  • 帖主:zhangxf
  • ice_berg16
  • kangqin
  • KimSoft
  • xuzuning
  • meizz

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo