事件捕获脚本,转换成IE与FF都通用的代码
<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




