| À̺¥Æ® return°ª 2 | Go to captureEvents return |
»óÀ§, ÇÏÀ§°¡ °°Àº À̺¥Æ®¸¦ °¡Áö°í ÀÖÀ» ¶§, IE4´Â µÑ ´Ù À̺¥Æ®°¡ ÀϾ´Ï´Ù. ÇÏÁö¸¸, NN4´Â ÇÏÀ§ÀÇ À̺¥Æ®¸¸ ÀϾ´Ï´Ù.
¿©±â¼ IE4ó·³ µÑ ´Ù ÀϾ°Ô ÇÏ´Â °ÍÀÌ captureEvents(), routeEvent()ÀÔ´Ï´Ù.
captureEvents(), routeEvent()¸¦ ¼±¾ðÇÏ°í µ¿½Ã¿¡ »óÀ§, ÇÏÀ§ÀÇ À̺¥Æ®°¡ ÀϾ¸é »óÀ§ÀÇ À̺¥Æ®¸¸ ÀϾ´Ï´Ù. À§ÀÇ °æ¿ì¿Í ¹Ý´ëÀÔ´Ï´Ù.
captureEvents´Â À̺¥Æ®¸¦ °¡·Îä°£´Ù´Â ¸»ÀÔ´Ï´Ù. captureEvents´Â Ç×»ó »óÀ§¿¡¼ ÇÏÀ§ÀÇ Object¿¡°Ô Event ¸¦ CaptureÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. ±×·¡¼, °°Àº À̺¥Æ® Çîµé·¯´Â ¸ðµÎ »óÀ§¿¡°Ô ÁÖ¾îÁý´Ï´Ù.
µû¶ó¼, ÇÏÀ§ÀÇ À̺¥Æ® Çîµé·¯´Â »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ÀÌ ¶§, ÇÏÀ§¿¡¼µµ ÁöÁ¤µÈ À̺¥Æ® Çîµé·¯¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ routeEvent() ÀÔ´Ï´Ù. ÇÏÀ§¿¡°Ô À̺¥Æ® Åë·Î(route)¸¦ ¿¾îÁشٴ ¶æÀÔ´Ï´Ù.
IE4¿¡¼´Â ÀÌ·± °³³äÀÌ ¾ø½À´Ï´Ù. ÁöÁ¤µÈ À̺¥Æ®´Â ÇÏÀ§¿¡¼ ºÎÅÍ »óÀ§·Î ÀüºÎ ´Ù ½ÇÇàÇÕ´Ï´Ù.
var NN4 = ( document.layers ) ? true : false;
var IE4 = ( document.all ) ? true : false;
function clickEvent() { alert("Capture Event") }
function capEvent() {
if ( NN4 ) {
document.captureEvents(Event.CLICK);
document.onclick = clickEvent;
}
if ( IE4 ) document.onclick = clickEvent;
}
</script>
</head>
<body onLoad="capEvent()">
<a href="javascript:alert('HREF')" onClick="alert('Link Click')">Link</A>
À§ÀÇ ¼Ò½º´Â document¿¡°Ô ¸ðµç click À̺¥Æ®¸¦ ÇÔ¼ö clickEvent¿¡°Ô ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
NN4´Â window -> document -> Object ÀÔ´Ï´Ù.
IE4´Â Object -> document -> window ÀÔ´Ï´Ù.
Á¤¹Ý´ë ÀÔ´Ï´Ù. À§ÀÇ ¼Ò½º¿¡¼ Link ¸µÅ©¸¦ ´©¸£¸é ¼ø¼´Â..
[NN4] Capture Event -> HREF Áï, document -> link Object ÀÔ´Ï´Ù.
[IE4] Link Click -> Capture Event -> HREF Áï, link Object -> document ÀÔ´Ï´Ù.
À̺¥Æ®°¡ ÀϾ´Â °ÍÀÌ ObjectÀÇ °èÃþ¿¡¼ ¹Ý´ë·Î ÀϾ´Ï´Ù. NN4¿¡¼´Â Link Click ÀÌ ³ª¿ÀÁö ¾Ê´Â ÀÌÀ¯´Â document¿¡°Ô captureEvents·Î document ¾ÈÀÇ ¸ðµç ObjectÀÇ click event¸¦ ÁÖ¾ú±â ¶§¹®ÀÔ´Ï´Ù. µû¶ó¼, ¸µÅ©ÀÇ clickµµ document¿¡°Ô °©´Ï´Ù. HREF °¡ ³ª¿À´Â °ÍÀº ÀÚ½ÅÀÇ click À̺¥Æ® Çîµé·¯´Â document¿¡°Ô captureEvents·Î »©¾Ò°åÁö¸¸, ¸µÅ©´Â document ¼Ó¿¡ Æ÷ÇԵǾî ÀÖ´Â ObjectÀÔ´Ï´Ù. document ¾ÈÀÇ onclick À̺¥Æ®¸¦ °¡Áö´Â Object´Â ÀÚ½ÅÀÇ °íÀ¯ÀÛ¾÷À» ÇÕ´Ï´Ù. ÀÚ½ÅÀÇ À̺¥Æ® Çîµé·¯¸¸ document¿¡°Ô µ¹¸³´Ï´Ù.
IE4´Â ObjectÀÇ °°Àº À̺¥Æ® Çîµé·¯¸¦ »óÀ§¿¡¼ °¡Áö°í À־ ÀÚ½ÅÀÇ À̺¥Æ® Çîµé·¯¸¦ »©¾Ñ±âÁö ¾Ê½À´Ï´Ù.
À̰ÍÀÌ NN4¿ÍÀÇ Â÷ÀÌÁ¡ÀÔ´Ï´Ù.
<a href="javascript:alert('HREF')" onClick="alert(Link Click); return false">Link</A>
À§ÀÇ ÁÙ·Î ÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? ¸µÅ© click À̺¥Æ® Çîµé·¯¿¡ return false¸¦ ÁöÁ¤Çß½À´Ï´Ù.
[NN4] Capture Event -> HREF
[IE4] Link Click -> Capture Event
·Î µË´Ï´Ù. IE4¿¡¼ HREF°¡ ³ª¿ÀÁö ¾Ê´Â ÀÌÀ¯´Â ¸ÕÀú ¹ß»ýÇÑ ¸µÅ©ÀÇ click À̺¥Æ® Çîµé·¯°¡ false¸¦ ¹ÝȯÇ߱⠶§¹®ÀÔ´Ï´Ù.
NN4¿¡¼´Â À§ÀÇ °æ¿ì¿Í °°½À´Ï´Ù. Áï, captureEvents()·Î À̺¥Æ®¸¦ ¾î¶² Object¿¡°Ô ÁöÁ¤Çϸé, ±× Object ¾ÈÀÇ ¸ðµç Object´Â »óÀ§¿¡¼ captureEvents()ÇÑ °Í°ú °°Àº Á¾·ùÀÇ ÀÚ½ÅÀÇ À̺¥Æ®¸¦ »óÀ§¿¡°Ô ÁöÁ¤ÇÕ´Ï´Ù. µû¶ó¼, ÇÏÀ§´Â °°Àº À̺¥Æ® Çîµé·¯(ÁöÁ¤µÈ ÇÔ¼ö)¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
ÀÌ ¶§, ÀÚ½ÅÀÇ À̺¥Æ® Çîµé·¯¸¦ »ç¿ëÇϱâ À§Çؼ routeEvent()¶ó´Â Åë·Î(route)¸¦ ¿¾îÁÖ´Â ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
IE4¿¡¼´Â ÁöÁ¤ÇÏ´Â Object°¡ µ¶¸³ÀûÀ̱⠶§¹®¿¡, °¢°¢ ÀÛµ¿À» ÇÕ´Ï´Ù. routeEvent°¡ IE4¿¡¼´Â ÇÊ¿ä¾ø°í Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.
captureEvents()·Î NN4´Â »óÀ§, ÇÏÀ§°¡ °°Àº À̺¥Æ® Çîµé·¯¸¦ °¡Áö°í ÀÖÀ¸¸é ÇÏÀ§ÀÇ À̺¥Æ® Çîµé·¯°¡ »óÀ§¿¡°Ô Á¾¼Ó µÇÁö¸¸, IE4´Â Á¾¼ÓµÇÁö ¾Ê½À´Ï´Ù. NN4¿¡¼ captureEvents() ·Î Á¾¼ÓµÈ ÇÏÀ§ÀÇ À̺¥Æ® Çîµé·¯(ÁöÁ¤µÈ ÇÔ¼ö)¸¦ Á¦¾îÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù. routeEvent(), releaseEvents(), handleEvent() ÀÔ´Ï´Ù.
NN4¿Í IE4ÀÇ »óÇÏÀ§ÀÇ ¿¬°áµÈ À̺¥Æ®(captureEvents) ÀÛµ¿¿¡¼ÀÇ Â÷ÀÌÁ¡Àº
(1) ¼ø¼°¡ ¹Ý´ë´Ù.
(2) »ó, ÇÏÀ§¿¡ °°Àº À̺¥Æ®¸¦ ÁöÁ¤Çϸé NN4´Â »óÀ§°¡ ÇÏÀ§ÀÇ À̺¥Æ®¸¦ °¡ÁöÁö¸¸, IE4´Â °¡ÁöÁö ¾Ê´Â´Ù.
Å©°Ô ÀÌ µÎ °¡Áö·Î NN4¿Í IE4ÀÇ À̺¥Æ®ÀÇ Â÷ÀÌÁ¡ÀÔ´Ï´Ù.
var NN4 = ( document.layers ) ? true : false;
var IE4 = ( document.all ) ? true : false;
function clickEvent(e) { // (1)
alert("Capture Event");
if ( NN4 )
document.routeEvent(e); // (2)
}
function capEvent() {
if ( NN4 ) {
document.captureEvents(Event.CLICK);
document.onclick = clickEvent;
}
if ( IE4 ) document.onclick = clickEvent;
}
</script>
</head>
<body onLoad="capEvent()">
<a href="javascript:alert('HREF')" onClick="alert('Link Click')">Link</A>
ÁÖ¼® (2)¹øÀ¸·Î NN4¿¡¼ ÇÏÀ§ÀÇ °°Àº À̺¥Æ®¸¦ °¡Áø Object¿¡°Ô ÀÚ½ÅÀÇ À̺¥Æ® Çîµé·¯¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô Åë·Î(route)¸¦ ¿¾î Áá½À´Ï´Ù. ±×·¡¼, ¼ø¼¸¸ ´Ù¸£°í 3°³ÀÇ alert âÀÌ ´Ù ³ª¿É´Ï´Ù.
¿©±â¼ ÁÖÀDZí°Ô ºÁ¾ßÇÒ °ÍÀº »óÀ§, ÇÏÀ§°¡ °°Àº À̺¥Æ® Çîµé·¯(onclick)¸¦ °¡Áö°í ÀÖÀ» ¶§, µÑ ´Ù ½ÇÇàÀÌ µÇ°í ³ª¼ Object(Link ¸µÅ©)°¡ À̺¥Æ®¿¡ ¸Â´Â °íÀ¯ ÀÛµ¿À» ÇÕ´Ï´Ù. NN4, IE4 µÑ ´Ù °°Àº Á¡ÀÔ´Ï´Ù.
<a href="javascript:alert('HREF')" onClick="alert(Link Click); return false">Link</A>
¸µÅ©ÅÃÀÇ onClick¿¡ return false;¸¦ ÁöÁ¤Çß½À´Ï´Ù.
[NN4] Capture Event -> Link Click -> HREF
[IE4] Link Click -> Capture Event
¿©±â¼ IE´Â ¸µÅ©ÀÇ onClick°¡ false¸¦ ¹ÝȯÇÏ¿© HREF´Â ³ª¿ÀÁö ¾Ê½À´Ï´Ù.
NN4¿¡¼ routeEvent·Î ÇÏÀ§¿¡°Ô À̺¥Æ®¸¦ »ç¿ëÇÏ°Ô ÇÒ ¶§, ÇÏÀ§ÀÇ À̺¥Æ®´Â ÀÛµ¿ ÇÏÁö¸¸, ÇÏÀ§ÀÇ ¹Ýȯ°ªÀº
ÀÚ½ÅÀÇ Object¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ¾ø½À´Ï´Ù. »óÀ§ÀÇ ¹Ýȯ°ª ¸¸ÀÌ ÀÚ½ÅÀÇ ÀÛµ¿¿©ºÎ¸¦ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
var NN4 = ( document.layers ) ? true : false;
var IE4 = ( document.all ) ? true : false;
function clickEvent(e) {
alert("Capture Event");
if ( NN4 )
document.routeEvent(e);
return false; // (1)
return true; // (2)
// return ÁöÁ¤¾ÈÇÔ. (3)
}
function capEvent() {
if ( NN4 ) {
document.captureEvents(Event.CLICK);
document.onclick = clickEvent;
}
if ( IE4 ) document.onclick = clickEvent;
}
</script>
</head>
<body onLoad="capEvent()">
<a href="javascript:alert('HREF')" onClick="alert('Link Click')">Link</A>
| NN 4 | IE 4 | |
| (1) | Capture Event->Link Click | Link Click->Capture Event |
| (2) | Capture Event->Link Click->HREF | Link Click->Capture Event->HREF |
| (3) | Capture Event->Link Click->HREF | Link Click->Capture Event->HREF |
| NN 4 | IE 4 | |
| (1)(4) | Capture Event->Link Click | Link Click->Capture Event |
| (2)(4) | Capture Event->Link Click->HREF | Link Click->Capture Event->HREF |
| (3)(4) | Capture Event->Link Click->HREF | Link Click->Capture Event->HREF |
| NN 4 | IE 4 | |
| (1)(5) | Capture Event->Link Click | Link Click->Capture Event |
| (2)(5) | Capture Event->Link Click->HREF | Link Click->Capture Event->HREF |
| (3)(5) | Capture Event->Link Click->HREF | Link Click->Capture Event |
1. À̺¥Æ®ÀÇ ¼ø¼´Â NN4´Â »óÀ§¿¡¼ ÇÏÀ§·Î IE4´Â ÇÏÀ§¿¡¼ »óÀ§·Î ¼·Î ¹Ý´ëÀÌ´Ù.
2. NN4´Â »óÀ§°¡ ÇÏÀ§ÀÇ À̺¥Æ® Çîµé·¯¸¦ °¡Áö³ª, IE4´Â °¡ÁöÁö ¾Ê´Â´Ù.
3. NN4, IE4 ¸ðµÎ »óÀ§ À̺¥Æ®ÀÇ ¹Ýȯ°ªÀº ÇÏÀ§ ObjectÀÇ ÀÛµ¿¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.
ÇÏÀ§ À̺¥Æ®ÀÇ ¹Ýȯ°ªÀÌ true ÀÏÁö¶óµµ, »óÀ§ À̺¥Æ®ÀÇ ¹Ýȯ°ªÀÌ false ¶ó¸é,
ÇÏÀ§ÀÇ ¹Ýȯ°ªÀº ÀÚµ¿À¸·Î false°¡ µÈ´Ù. ¶ÇÇÑ, ÇÏÀ§ÀÇ ¹Ýȯ°ªÀÌ false¶óµµ
»óÀ§ÀÇ ¹Ýȯ°ªÀÌ true¶ó¸é, ÇÏÀ§ÀÇ Object´Â ÀÛµ¿ÇÑ´Ù.
ÀÌ ¶§, IE4¿¡¼´Â »óÀ§ÀÇ ¹Ýȯ°ª return true ¸¦ ÁöÁ¤À» ÇØ¾ßÇß´Ù.
¸¸¾à, »óÀ§ÀÇ return °ªÀÌ ¾øÀ¸¸é(return true, false¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é) ÇÏÀ§ÀÇ
¹Ýȯ°ª ¸¸À¸·Î ÇÏÀ§ÀÇ ÀÛµ¿¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.NN4¿¡¼´Â ¹Ýȯ°ªÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ±âº»À¸·Î return trueÀÌ´Ù. JavaScript1.1°ú °°´Ù.
var NN4 = ( document.layers ) ? true : false;
var IE4 = ( document.all ) ? true : false;
function clickEvent(e) {
alert("Capture Event");
if ( NN4 )
if ( document.routeEvent(e) ) // (1)
return false;
else return true;
}
function capEvent() {
if ( NN4 ) {
document.captureEvents(Event.CLICK);
document.onclick = clickEvent;
}
if ( IE4 ) document.onclick = clickEvent;
}
</script>
</head>
<body onLoad="capEvent()">
<a href="javascript:alert('HREF')" onClick="alert('Link Click'); return true">Link</A>
routeEvent()´Â route Event¸¦ ¹ÞÀº Object(Link ¸µÅ©)ÀÇ À̺¥Æ® ¹Ýȯ°ªÀ» ¹Þ½À´Ï´Ù. Link ¸µÅ©°¡
return true¸¦ ¹ÝȯÇϸé À§ÀÇ ÁÖ¼® (1)¹øÀº ÂüÀÔ´Ï´Ù. return false ³ª return ÀÌ
¾øÀ¸¸é °ÅÁþÀÔ´Ï´Ù. À̰ÍÀ¸·Î ÇÏÀ§ÀÇ ¹Ýȯ°ªÀ¸·Î ÀÚ½ÅÀÇ °íÀ¯ÀÛ¾÷À» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿©±â¼ NN4´Â HREF°¡ ³ª¿ÀÁö ¾Ê½À´Ï´Ù.
±âº»ÀûÀ¸·Î NN4¿¡¼´Â Åà ¾È¿¡¼ À̺¥Æ®¸¦ Á¤ÀÇÇÒ ¶§´Â 1. event, 2. this, 3. return true(false) ¸¦ Á¤ÀÇ ÇØ¾ßÁö, ¹ÞÀº À̺¥Æ® Çîµé·¯ÀÇ ÇÔ¼ö¿¡¼ À̵éÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. JavaScript·Î Á¤ÀÇÇÒ ¶§´Â À̵éÀÌ Çʿ䰡 ¾ø½À´Ï´Ù. 1, 2´Â ÀÚµ¿À¸·Î °¡°í 3.Àº ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é return trueÀÔ´Ï´Ù.
function eventTest(X, Y) { alert("Event type : "+X.type+" This Name : "+Y.name); }
<a href="#" onClick="eventTest(event, this)">GO</a>
var NN4 = ( document.layers ) ? true : false;
var IE4 = ( document.all ) ? true : false;
function dblclickEvent() { alert("Double Click"); } //(1)
function clickEvent(e) {
alert("Capture Event");
if ( NN4 )
document.routeEvent(e);
return true; //(2)
}
function capEvent() {
if ( NN4 ) {
document.captureEvents(Event.CLICK | Event.DBLCLICK);
document.onclick = clickEvent;
document.ondblclick = dblclickEvent; //(3)
}
if ( IE4 ) {
document.onclick = clickEvent;
document.ondblclick = dblclickEvent; //(4)
}
}
</script>
</head>
<body onLoad="capEvent()">
<a href="javascript:alert('HREF')" onClick="alert('Link Click')">Link</A>
ÁÖ¼® (3), (4)À¸·Î click°ú double click µÑÀ» document¿¡°Ô »ç¿ëÇÏ°Ô Çß½À´Ï´Ù. Double Click´Â ¸¶¿ì½º¸¦ µÎ¹ø ¿¬¼ÓÇØ¼
´©¸£¸é ¹ß»ýÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. click ´ÙÀ½¿¡ À̰ÍÀÌ ÀϾ´Ï´Ù. ´Ù¸¥ Object¿¡¼´Â Double ClickÀ̺¥Æ®°¡ ÀϾ´Ï´Ù.
ÇÏÁö¸¸, ¸µÅ©´Â click°¡ ¸µÅ© ObjectÀÇ µ¿ÀÛÀ» °áÁ¤ÇÕ´Ï´Ù. µû¶ó¼ ¿©±â¼´Â NN4, IE4 µÑ ´Ù ÁÖ¼®(1)¹øÀÇ "Double Click"´Â ³ª¿ÀÁö ¾Ê½À´Ï´Ù.
ÁÖ¼® (2)¹øÀÌ return false¶ó¸é ¸µÅ©ÀÇ clickÀ̺¥Æ®¸¦ Ãë¼ÒÇØ¼ ÁÖ¼® (1)¹øÀÇ "Double Click" °¡ ³ª¿É´Ï´Ù.
¿Ö³ÄÇϸé, Double Click´Â ¿¬¼ÓÇØ¼ ¸¶¿ì½º¸¦ µÎ ¹ø ´©¸£´Â °ÍÀÔ´Ï´Ù. alertâÀÌ ³ª¿À°í ´ÝÀ¸¸é ½Ã°£ÀÌ °É·Á¼ µÎ ¹øÂ°ÀÇ Click´Â ¸ÔÈ÷Áö ¾Ê½À´Ï´Ù.
±×¸®°í, href¿¡ ´Ù¸¥ ¹®¼¸¦ ¿¬°áÇØµµ ³ª¿ÀÁö ¾Ê½À´Ï´Ù.
Double Click´Â documentÀÇ À̺¥Æ®À̱⠶§¹®ÀÔ´Ï´Ù. ¸µÅ©ÀÇ href attribute´Â »õ·Î¿î document¸¦ ºÒ·¯¿À´Â
°ÍÀÔ´Ï´Ù. Áï, ÃÖ»óÀ§ Object, window Object°¡ ¹Ù²î¾ú±â ¶§¹®ÀÔ´Ï´Ù.
! ÇöÀçÀÇ ÆäÀÌÁö¿¡ ´Ù¸¥ ÆäÀÌÁö¸¦ ºÒ·¯¿À¸é ¸ðµç °ÍÀº ³¡³³´Ï´Ù.