跨平台的事件 eventUtil il
eventUl :
var EventUtil={
addEventHandler:function(oTarget, sEventType, fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false);
} else if(oTarget.attachEvent){
oTarget.attachEvent("on" sEventType,fnHandler);
} else{
oTarget["on" sEventType]=fnHandler;
}
},
removeEventHandler:function(oTarget, sEventType, fnHandler){
if(oTarget.removeEventListener){
oTarget.removeEventListener(sEventType,fnHandler);
} else if(oTarget.detachEvent){
oTarget.detachEvent("on" sEventType,fnHandler);
} else{
oTarget["on" sEventType]=null;
}
},
formatEvent:function(oEvent){
var isIE=/msie/i.test(navigator.userAgent),
isWin=/win/i.test(navigator .userAgent);
if(isIE && isWin){
oEvent.charCode=(oEvent.type == "keypress")?oEvent.keyCode:0;
oEvent.eventPhase =2;
oEvent.isChar=(oEvent.charCode>0);
oEvent.pageX=oEvent.clientX document.body.scrollLeft;
oEvent.pageY=oEvent.clientY document.body.scrollTop;
oEvent.preventDefault=function(){
this.returnvalue=false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget=oEvent.toElement;
}else if(oEvent.type=="mouseover"){
oEvent.관련Target=oEvent.fromElement;
}
oEvent.stopPropagation=function(){
this.cancelBubble=true;
}
oEvent.target=oEvent.srcElement;
oEvent.time=(new Date()).getTime();
}
return oEvent;
},
getEvent:function(){
if(window.event){
return this.formatEvent(window.event);
}else{
return EventUtil.getEvent.caller.arguments[0];
}
}
}
测试
var EventUtil={
addEventHandler:function(oTarget, sEventType, fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false);
} else if(oTarget.attachEvent){
oTarget.attachEvent("on" sEventType,fnHandler);
} else{
oTarget["on" sEventType]=fnHandler;
}
},
removeEventHandler:function(oTarget, sEventType, fnHandler){
if(oTarget.removeEventListener){
oTarget.removeEventListener(sEventType,fnHandler);
} else if(oTarget.detachEvent){
oTarget.detachEvent("on" sEventType,fnHandler);
} else{
oTarget["on" sEventType]=null;
}
},
formatEvent:function(oEvent){
var isIE=/msie/i.test(navigator.userAgent),
isWin=/win/i.test(navigator .userAgent);
if(isIE && isWin){
oEvent.charCode=(oEvent.type == "keypress")?oEvent.keyCode:0;
oEvent.eventPhase =2;
oEvent.isChar=(oEvent.charCode>0);
oEvent.pageX=oEvent.clientX document.body.scrollLeft;
oEvent.pageY=oEvent.clientY document.body.scrollTop;
oEvent.preventDefault=function(){
this.returnvalue=false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget=oEvent.toElement;
}else if(oEvent.type=="mouseover"){
oEvent.관련Target=oEvent.fromElement;
}
oEvent.stopPropagation=function(){
this.cancelBubble=true;
}
oEvent.target=oEvent.srcElement;
oEvent.time=(new Date()).getTime();
}
return oEvent;
},
getEvent:function(){
if(window.event){
return this.formatEvent(window.event);
}else{
return EventUtil.getEvent.caller.arguments[0];
}
}
}
EventUtil.addEventHandler(window,"load",function(){
var oDiv=document.getElementById("div1");
EventUtil.addEventHandler (oDiv,"mouseover",handleEvent)
EventUtil.addEventHandler(oDiv,"mouseout",handleEvent);
EventUtil.addEventHandler(oDiv,"mousedown",handleEvent)
EventUtil.addEventHandler(oDiv) ,"mouseup",handleEvent)
EventUtil.addEventHandler(oDiv,"click",handleEvent)
EventUtil.addEventHandler(oDiv,"dblclick",handleEvent)
});
function handlerEvent(){
var oEvent=EventUtil.getEvent();
var oTextbox=document.getElementById("txt1");
oTextbox.value ="n>" o이벤트.유형;
oTextbox.value ="n 대상은 " oEvent.target.tagName;
if(oEvent.관련Target){
oTextbox.value ="n 관계 타겟은 " oEvent.관련Target.tagName;
}
}
마우스를 사용해 빨간색 사각형을 클릭한 후 더블클릭하세요.

如何进行C++代码的数据校验?在编写C++代码时,数据校验是非常重要的一环。通过对用户输入的数据进行校验,可以增强程序的健壮性和安全性。本文将介绍一些常见的数据校验方法和技巧,帮助读者有效地进行C++代码的数据校验。输入数据类型检查在对用户输入的数据进行处理之前,首先要检查输入数据的类型是否符合要求。例如,如果需要接收用户的整数输入,那么需要确保用户输入的是

随着智能设备的不断普及,越来越多的应用程序需要同时兼容多种不同的平台,例如Android、iOS、Web等。为了满足这样的需求,跨平台开发逐渐成为了一种趋势。而使用Go语言和ReactNative构建跨平台通用应用程序也变得越来越流行。在本文中,我们将分享一些在这一过程中的最佳实践。了解Go语言和ReactNative的基础知识在开始构建跨平台通用应用程

Vue.js与Dart语言的集成,构建跨平台移动应用的思路在移动应用开发领域,跨平台的开发框架得到了越来越多的关注。Vue.js是一种用于构建用户界面的JavaScript框架,而Dart语言是由Google开发的一种用于构建跨平台应用的语言。本文将探讨如何将Vue.js与Dart语言集成,以构建跨平台移动应用。一、Vue.js简介Vue.js被认为是一种轻

如何解决PHP开发中的跨平台兼容性问题,需要具体代码示例随着互联网的发展,PHP作为一种广泛应用的Web开发语言,被越来越多的开发者所选择和使用。然而,PHP作为一种跨平台的编程语言,常常面临着不同操作系统和环境下的兼容性问题。本文将介绍一些解决PHP开发中跨平台兼容性问题的方法,并给出具体的代码示例。使用跨平台的库和框架要解决PHP开发中的跨平台兼容性问题

C++是一种功能强大的编程语言,它广泛应用于各种领域的软件开发中。然而,由于不同操作系统的差异,C++开发人员经常面临一个问题:如何进行跨平台C++开发?本文将分享一些C++开发经验,帮助您在跨平台开发中取得成功。了解目标平台特性首先,您需要了解目标平台的特性和限制。不同操作系统的API、文件系统和网络通信等都有所差异。因此,在进行跨平台开发之前,首先要对目

C#作为一种广泛应用于软件开发领域的编程语言,在跨平台兼容性和适配性方面具有一定的优势和挑战。本文将就C#开发中的跨平台兼容性和适配性问题进行探讨,以帮助开发者更好地应对跨平台开发。首先,我们来介绍C#的跨平台兼容性。传统上,C#主要应用于Windows平台上,因为它是与Microsoft.NETFramework紧密结合的语言。然而,随着技术的不断发展

Go语言的跨平台能力为开发者带来了更高的生产力和竞争优势作为一门开源的编程语言,Go语言以其简洁的语法、高效的执行速度和出色的并发特性在开发者中越来越受欢迎。而其中最吸引人的特点之一就是其极佳的跨平台能力。无论是在Windows、Linux还是macOS平台上,开发者都可以轻松地编写、构建和运行Go语言程序,这为他们带来了更高的生产力和竞争优势。Go语言的跨

如何利用ReactNative构建跨平台移动应用引言:随着移动应用市场的蓬勃发展,开发者需要快速将应用部署到多个平台上。ReactNative是一个强大的工具,可以帮助开发者使用单一代码库构建跨平台移动应用。本文将介绍ReactNative的基本概念,并提供一些具体代码示例,以帮助读者了解如何利用ReactNative构建跨平台移动应用。一、Reac


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
