IE와 Firefox를 호환하는 이벤트 대상 ||||이벤트 호환 요약

 IE  var a=window.event.clientX;
 Firefox , event ?

예를 들어 IE에서alert(event.clientX);그러나 Firefox에서는 이러면 안 된다. 비교적 적절한 방법은var obj=window이다.event;//이렇게//하지만 이것은 i에서만 값을 얻을 수 있습니다. 만약에 Firefox에서 이obj를 얻고 싶다면.그럼 var obj=?????????//여기 뭐라고 써야 되지?
 <script>
/*firefox*/
function __firefox(){
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){
    return this.style;
}
function __window_event(){
    return __window_event_constructor();
}
function __event_srcElement(){
    return this.target;
}
function __window_event_constructor(){
    if(document.all){
        return window.event;
    }
    var _caller = __window_event_constructor.caller;
    while(_caller!=null){
        var _argument = _caller.arguments[0];
        if(_argument){
            var _temp = _argument.constructor;
            if(_temp.toString().indexOf("Event")!=-1){
                return _argument;
            }
        }
        _caller = _caller.caller;
    }
    return null;
}
if(window.addEventListener){
    __firefox();
}
/*end firefox*/
</script>

이벤트 호환성 요약

이벤트는 IE와 FF(Firefox)에서 호환되지 않기 때문에 현재 자주 사용하는 것을 총괄하여 참고로 하고 전면적이지 않다.
1. 이벤트 설정
IE에서 가장 중요한 것은 setattribute로 onclick 등 이벤트 속성, 대상 속성, 집합 속성을 동적으로 설정하는 것을 지원하지 않는다는 것이다.따라서 다음과 같은 호환성 문제를 해결할 수 있습니다.
if (this.obj.attachEvent)
{
   //IE
    var eventStr = "FuncOnClick();";
    this.obj.attachEvent("onclick", function(){eval(eventStr)});
}
else
{
    this.obj.setAttribute("onclick", "javascript:FuncOnClick();");
}
자세한 방법은 다음을 참조하십시오.
  • 브라우저에 동적으로 이벤트 추가 - 메소드 편
  • 브라우저별로 이벤트 동적 추가 - 매개변수 편
  • 이벤트스트의 값은 변경되지 않습니다
  • 2. 이벤트 대상
    IE에서는 이벤트 대상을 직접 사용할 수 있지만 FF에서는 사용할 수 없습니다. 해결 방법 중 하나는 다음과 같습니다.
    var theEvent = window.event || arguments.callee.caller.arguments[0];
    더 많은 방법은 Netscape에서 이벤트 대상을 사용하는 것을 참고하십시오.
    3. srcElement과 target
    IE에서 srcElement은 이벤트가 발생하는 원본을 표시합니다. 예를 들어 어떤 단추가 터치한 onclick 이벤트이고 FF는 target입니다.
    var theEvent = window.event || arguments.callee.caller.arguments[0];
    var srcElement = theEvent.srcElement;
    if (!srcElement)
    {
        srcElement = theEvent.target;
    }
    자세한 내용은 IE 및 FF의 srcElement 을 참조하십시오.
    4. 마우스 버튼 키 값.
  • IE는 왼쪽 키는 1, 오른쪽 키는 2, 가운데 키(롤러 누르기)는 4로 판단했다.
  • FF는 왼쪽 키가 0이고 오른쪽 키가 2이며 중간 키(롤러 누르기)가 1이라고 여긴다.
  • 좋은 웹페이지 즐겨찾기