자바스크립트 함수내에서 이벤트 객채를 다룰때.

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
Argentum

자바스크립트 함수내에서 이벤트 객채를 다룰때.

Post by Argentum »

안녕하세요. 근래 웹 표준을 접하게되 부랴부랴 사이트를 뜯어 고치는 중입니다.

뭣보다도 자바스크립트가 브라우저간 호완이 완벽치 못함으로 인한 문제에서 많이 막히네요.

문제의 코드 (단순화 하였습니다.)

Code: Select all

function addDiv(){

var objBody = document.getElementsByTagName("BODY");
var newElement = objBody.appendChild(document.createElement("DIV"));

newElement.className = "hand";
newElement.onmouseover = function (){

alert(event);

}

}
IE 상에서는 object 라고 뜨지만 FF에서는 언디파인드가 뜨네요.

본래는 추가되는 DIV(newElement)에 마우스가 올려질경우 event객체를

파라메터로 전달해 처리하는 함수를 할당시키려고 합니다만은 코드는

문제의 부분만을 보이도록 단순화 시킨겁니다.


검색해보니 모질라 계열 부라우져는 html코드상에서 자바스크립트 함수로

event 객체를 인수로서 넘겨주는 경우에만 참조가 가능하다고 하는군요

즉, <div onMouserOver="javascript:alert(event);"> 이럴때...

하지만 저는 페이지상에 동적으로 DIV를 생성해야 해서 위 방법으로는

해결할 수 가 없네요.

고수님들의 조언부탁드립니다.
nowhere0

Re: 자바스크립트 함수내에서 이벤트 객채를 다룰때.

Post by nowhere0 »

Code: Select all

window.onload = init;

function init() {
  document.getElementById("switch").onkeydown = handleEvent;
}

function handleEvent(e) {
  var event = e ? e : window.event;

  alert(e.keyCode);
}
참고하시길...
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest