ãšã³ããªãŒ
ããã«ã¡ã¯ãHabrachelovekiã
ãã®èšäºã§ã¯ãDOMã€ãã³ããªã©ã®äŸ¿å©ãªæ©èœã«ã€ããŠã³ãã¥ããã£ã«äŒããããšæããŸãã Javascriptã«äœããã®åœ¢ã§é¢ä¿ããŠãã人ã¯èª°ã§ãããã®èšèªã§ã¯ã€ãã³ããšãã®åŠçãæãéèŠã§é »ç¹ã«äœ¿çšãããããããã£ã®1ã€ã§ããããšãç¥ã£ãŠããŸããããããã®ã€ãã³ããããã°ã©ã ã§çæããæ¹æ³ãç¥ã£ãŠãã人ã¯å€ããããŸããã å®éããã®èšäºã¯ããã«å°å¿µããŠããŸãïŒããã¯ãããäœã§ãããããªããããå¿ èŠã§ãããããããŠãããã©ã®ããã«äœ¿ãããäŒããŸãã ãã®ãããã¯ã¯è°è«äžã®äž»é¡ãšéåžžã«å¯æ¥ã«é¢é£ããŠããŸããããªã¹ããŒã®è©±ã¯ãããŸããã
ããã¯äœã§ãã
DOMã€ãã³ãã䜿çšãããšãJavaScriptãJScriptãECMAScriptãVBScriptãJavaãªã©ã®ã€ãã³ãæåããã°ã©ãã³ã°èšèªã§ãDOMããªãŒïŒHTMLãXHTMLãXULãSVGïŒå ã®èŠçŽ ããŒãã«ããŸããŸãªã€ãã³ããã³ãã©ãŒ/ã€ãã³ããªã¹ããŒãç»é²ã§ããŸãã ã
ããã¯ãããšãã°ãonClickãonBlurãonMouseOverãªã©ã§ãã ãããã®ã€ãã³ãã¯ãç¹å®ã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ïŒããŒã¹ãããŒã¯ãã¯ãªãã¯ãèŠçŽ ã®å¢çãè¶ããã«ãŒãœã«ç§»åïŒã«ãã£ãŠããªã¬ãŒãããŸãã ã€ãŸããã統治äœãã«ç©ççãªåœ±é¿ãäžããŸãã å ¥åããã³æäœããã€ã¹ã䜿çšããã«ããã®ãããªã€ãã³ããããã°ã©ã ã§èµ·åããæ¹æ³ãåŠç¿ããŸãã
ãªããããå¿ èŠãªã®ã§ããïŒ
ã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«ç°ãªãæ¹æ³ã§èŠã€ããããšãã§ããŸã ïŒ bbmmorpgã®ãããã®éçºãèªååã¹ã¯ãªãããäžæ£è¡çºïŒãããŒããŒããã®ã¹ã¯ãªããïŒå ¥åè¡ã«ç®çã®æåãæ¿å ¥ããŠonKeyUpã€ãã³ããããªã¬ãŒããïŒããweb dvdnolnostiããã¹ãã äžè¬çã«ãã©ãã ãã®æ³ååã§ååã§ãã
ã€ã³ã¿ãŒãããã§ãã®ãããã¯ã«é¢ããè³¢æãªããã¥ã¢ã«ãèŠã€ããããšãã§ããªãã£ããããããã§ã®èª¿æ»çµæãæžãããŠæ°žç¶åããããšã«ããŸããã
ãã ãã次ã®ããšãèŠããŠãã䟡å€ããããŸãã
ã€ãã³ãã®ãæåãããªã¬ãŒïŒçæïŒã¯ããã®ã€ãã³ãã«é¢é£ä»ããããããã©ã«ãã®ã¢ã¯ã·ã§ã³ãäœæããŸãã ã ããšãã°ãããã°ã©ã ã§èŠçŽ ã«ãã©ãŒã«ã¹ã€ãã³ããçæããŠãããã©ãŒã«ã¹ãåãåãããšã¯ãããŸãããæåã§çæããéä¿¡ã€ãã³ãã¯ãã©ãŒã ã«ããŒã¿ãéä¿¡ãããŸãã ïŒãã©ãŒã ã®éä¿¡ã¡ãœããã䜿çšããŸãïŒãçæãããkeypressã€ãã³ã㯠ãå ¥åãã£ãŒã«ãã«ã·ã³ãã«ã衚瀺ãããããšãæå³ããŸããããã®ãããªå¶éã¯ãã»ãã¥ãªãã£äžã®ç®çããã¹ã¯ãªããããŠãŒã¶ãŒã®äœæ¥ããã©ãŠã¶ãšã®ããåããã·ãã¥ã¬ãŒãããã®ãé²ãããã«å¿ èŠã§ãã
䜿ãæ¹ã¯ïŒ
äžè¬çãªé åºã§ã¯ãã¢ã«ãŽãªãºã ã¯åäžã§ãã
-ã€ãã³ãããã³ã°ããDOMããŒãã®ãªããžã§ã¯ããååŸããŸãã
-å¿ èŠãªã€ãã³ãã¢ãžã¥ãŒã«ã®ãªããžã§ã¯ããäœæããŸãã
-ã€ãã³ããªããžã§ã¯ããåæåããŸãã
-å¿ èŠãªDOMããŒãã«ã€ãã³ããå²ãåœãŠãŸãã
éå§ããã«ã¯ãæ¢åã®ã¢ãžã¥ãŒã«ã«æ £ããŠãã ããã
-ã€ãã³ã-芪ã¢ãžã¥ãŒã«ã ãã¹ãŠã®ã¢ãžã¥ãŒã«ã¯ãããç¶æ¿ããŸããããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
-HTMLEvents-DOMèŠçŽ ã®ã€ãã³ããå«ãŸããŸãã
-UIEvents-ããŒããŒãã€ãã³ãã
-MouseEvents-ããŠã¹ã€ãã³ãã
-MutationEvents-DOMããªãŒå€æŽã€ãã³ãã
DOM 2ã€ãã³ãã®æ§é
5ã€ã®DOM 2ã€ãã³ãã¢ãžã¥ãŒã«ããããŸãã ãããã®ååã¯ãã€ãã³ãã®æ¬è³ªãåæ ããŠããŸãã
ã€ãã³ã
- ãã¹ãŠã®ã¿ã€ãã®ã€ãã³ããã«ããŒããŸãã
HTMLEvents
- äžæ¢ãã
- ãŒãã
- å€ãã
- ãšã©ãŒ
- ãã©ãŒã«ã¹
- ããŒã
- ãªã»ãããã
- ãµã€ãºå€æŽ
- ã¹ã¯ããŒã«
- éžæãã
- æåºãã
- éãã
UIEvents
- DOMActivate
- DOMFocusIn
- DOMFocusOut
- ããŒããŠã³
- ããŒãã¬ã¹
- ããŒã¢ãã
- MouseEventsãéæ¥çã«ã«ããŒããŸã
Mousevents
- ã¯ãªãã¯
- ããŠã¹ããŠã³
- ããŠã¹ã ãŒã
- ããŠã¹ã¢ãŠã
- ããŠã¹ãªãŒããŒ
- ããŠã¹ã¢ãã
ãã¥ãŒããŒã·ã§ã³ãã³ã
- DOMAttrModified
- DOMNodeInserted
- DOMNodeRemoved
- DOMCharacterDataModified
- DOMNodeInsertedIntoDocument
- DOMNodeRemovedFromDocument
- DOMSubtreeModified
ä»ã®ã€ãã³ãïŒãdblClickããªã©ïŒã¯ä»æ§ã®äžéšã§ã¯ãªãããã©ãŠã¶ãŒã¯ãµããŒããå¿ èŠãšããŸããã ãããããµããŒããããã©ãŠã¶ãŒã¯ãé©åãªã¢ãžã¥ãŒã«ãéžæãããïŒããšãã°ã 'dblClick'ã¯MouseEventsã¢ãžã¥ãŒã«ã«éåžžã«é©ããŠããŸãïŒããŸãã¯æ°ããã¢ãžã¥ãŒã«ãäœæããŸãã ãã©ãŠã¶ããã®ãããªã€ãã³ããæ€åºããã¢ãžã¥ãŒã«ãç¥ãå¿ èŠããããŸãã
ãµã³ãã«ã€ãã³ãã®å®è£ -onClick
åœã®ã€ãã³ãã¯ãå¿ èŠãªã€ãã³ããå«ã察å¿ããã€ãã³ãã¢ãžã¥ãŒã«ã®ååãåãå ¥ããdocument.createEventã¡ãœããã䜿çšããŠäœæãããŸãã 次ã«ãinitEventã¡ãœããã䜿çšããŠã€ãã³ããæºåãïŒã¡ãœããã®ååã¯ã¢ãžã¥ãŒã«ããšã«ç°ãªããŸãïŒãæåŸã«ãdispatchEventã¡ãœããã䜿çšããŠæå®ããèŠçŽ ã§ã€ãã³ããããªã¬ãŒããŸãã äžè¬çãªã€ãã³ãã§ã¯ãªããããå ·äœçãªã¿ã€ãã®ã€ãã³ãã䜿çšããå Žåãã€ãã³ããæºåãããšãã«ã€ãã³ãã«é¢ããè¿œå æ å ±ãæäŸã§ããŸãã ããåä»ã§ããããã®äŸã§ã¯ãã¹ãŠãæ確ã«ããŸãã
IDããelement_idãã«çããèŠçŽ ã§ãã¯ãªãã¯ãã€ãã³ããäœæããã«ã¯ã以äžãè¡ãå¿ èŠããããŸãã
var element = document.getElementById('element_id'); // var o = document.createEvent('MouseEvents'); // , o.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null ); // element.dispatchEvent(o); //
ã€ãã³ããšãã®èª¬æãåæåããããã®ã¡ãœããã®ãã©ã¡ãŒã¿ãŒã®ãªã¹ãã倧ããããããããããã¯ãç ©éã«ãªãã®ãé¿ããããã«ããªã³ã¯ãã¯ãªãã¯ããŠãã¯ãªãã¯ããŠè©³çŽ°ã«æ £ããããšãã§ããŸãã ã¿ã€ã ã ãŸããã€ãã³ããåæåããã¡ãœããã®ååã®äžã«ã¯ããã©ã¡ãŒã¿ãŒã®èª¬æãå«ãããŒãžãžã®ãªã³ã¯ãšããŠèšèšãããŠããŸãã
ãã¹ãŠã®ã¢ãžã¥ãŒã«ã®ã€ãã³ãåæåã®äŸïŒ
HTMLEventsããã³æ±çšã€ãã³ã
initEvent ïŒãã¿ã€ãããããã«ããã£ã³ã»ã«å¯èœïŒ
UIEvents
initUIEvent ïŒãã¿ã€ãããããã«ããã£ã³ã»ã«å¯èœãwindowObjectã詳现ïŒ
Mousevents
initMouseEvent ïŒãã¿ã€ãããããã«ããã£ã³ã»ã«å¯èœãwindowObjectã詳现ãscreenXãscreenYãclientXãclientYãctrlKeyãaltKeyãshiftKeyãmetaKeyããã¿ã³ãrelatedTargetïŒ
ãã¥ãŒããŒã·ã§ã³ãã³ã
initMutationEvent ïŒãã¿ã€ãããããã«ããã£ã³ã»ã«å¯èœãrelatedNodeãprevValueãnewValueãattrNameãattrChangeïŒ
prevValueãNewValueãããã³attrNameã¯nullã«ã§ããŸãããã€ãã³ããDOMAttrModifiedïŒå€1ã2ããŸãã¯3ïŒã§ãªããŠããattrChangeãåžžã«å®çŸ©ããå¿ èŠãããããšã«æ³šæããŠãã ããã
MouseEventsã¯UIEventsã®ãµãã¯ã©ã¹ã§ãããåŸè ã¯Eventsã¢ãžã¥ãŒã«ã®ãµãã¯ã©ã¹ã§ãããããã£ãŠãMouseEventsãªããžã§ã¯ããäœæãããšãUIEventsããã³Eventsã€ã³ã¿ãŒãã§ãŒã¹ã®initUIEventããã³initEventã¡ãœãããç¶æ¿ããŸãã ãã®ãããæºåæã«äœ¿çšããã€ãã³ãåæåã¡ãœãããéžæã§ããŸãïŒNit * EventïŒ
æ±çšã€ãã³ãã¢ãžã¥ãŒã«ã䜿çšããã€ãã³ãã®ããªã¬ãŒïŒç¶æ¿ã®ãã¢ïŒ
以äžã®äŸã¯ããžã§ããªãã¯initEventã¡ãœããã䜿çšããã€ãã³ãã®ããªã¬ãŒã瀺ããããããã£ã¯ããã©ã«ãå€ã§æªå®çŸ©ã®ãŸãŸã«ãªããŸãïŒãã ãããžã§ããªãã¯initEventãŸãã¯initUIEventã䜿çšããå Žåã§ãããžã§ããªãã¯ã¢ãžã¥ãŒã«ã®ååã§ã¯ãªããæ£ç¢ºãªã¢ãžã¥ãŒã«åã䜿çšããå¿ èŠããããŸãã Mozilla / FirefoxãKonquerorãSafariã§ã¯åäœããŸããïŒïŒ
var element = document.getElementById('element_id'); var o = document.createEvent('MouseEvents'); o.initEvent('click', true, true); // Events, MouseEvents, element.dispatchEvent(o);
ããŒããŒãã€ãã³ã
Mozilla / Firefoxã¯æšæºãæ£ããå®è£ ãããäžè¬çãªïŒäžè¬çãªïŒUIEventsã䜿çšããŠããŒã€ãã³ããäœæã§ããªããããããŒããŒãã€ãã³ãã¯ããå°ãè€éã§ãïŒé倧ãªãšã©ãŒã§ããªãŒãºãŸãã¯ã¯ã©ãã·ã¥ããå¯èœæ§ããããŸãïŒã 代ããã«ãå éšKeyEventsã¢ãžã¥ãŒã«ãšinitKeyEventåæåã¡ãœãããæäŸããŸãã initKeyEventã¡ãœããã¯ããtypeããbubblesãcancellableãwindowObjectãctrlKeyãaltKeyãshiftKeyãmetaKeyãkeyCodeãcharCodeã®ãã©ã¡ãŒã¿ãŒãåãå ¥ããŸãã ifã³ã³ã¹ãã©ã¯ãïŒwindow.KeyEventïŒã䜿çšããŠããã©ãŠã¶ãŒã®KeyEventsã¢ãžã¥ãŒã«ã®ãµããŒããæ€åºã§ããŸãã UIEventsã䜿çšãããã©ãŠã¶ãŒã«ã¯ãããŒã€ãã³ãçšã®ç¹å®ã®åæåé¢æ°ããªããããããã€ãã®ããããã£ãæåã§è¿œå ããå¿ èŠããããŸãã
var element = document.getElementById('element_id'); if( window.KeyEvent ) // FF { var o = document.createEvent('KeyEvents'); o.initKeyEvent( 'keyup', true, true, window, false, false, false, false, 13, 0 ); } else // { var o = document.createEvent('UIEvents'); o.initUIEvent( 'keyup', true, true, window, 1 ); o.keyCode = 13; // , initUIEvent } element.dispatchEvent(evObj);
Internet Explorerã®ã€ãã³ã
Internet Explorerã§ã®ã€ãã³ãã®åæåã¯ãä»ã®ãã©ãŠã¶ãŒãšã¯å€§ããç°ãªããŸãã IEã«ã¯fireEventãšããã€ãã³ããæåã§ããªã¬ãŒããã¡ãœããããããIE 5.5 +ã§äœ¿çšã§ããŸãã æãåçŽãªåœ¢åŒã§ã¯ãããã¯DOMããŒãžã§ã³ã«äŒŒãŠããŸãããããã«ãšãã£ã³ã»ã«å¯èœãªããããã£ã¯äœ¿çšã§ããŸããã fireEventã¡ãœããã¯ã1ã€ãŸãã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãæž¡ãããããšãæ³å®ããŠããŸãã æåã¯ã€ãã³ãã®ååïŒããšãã°ããOnChangeãïŒã§ããªãã·ã§ã³ã®2çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ãã³ãã©ãŒã«æž¡ãããã€ãã³ããªããžã§ã¯ãã§ãªããã°ãªããŸããã
ãŠã£ã³ããŠãªããžã§ã¯ãã¯IEã§ããã€ãã®ã€ãã³ããæ€åºã§ããŸããïŒããšãã°ãããŒããã¢ã³ããŒããã¹ã¯ããŒã«ããµã€ãºå€æŽ-ãããã¯ãã¹ãŠãä»æ§ã§ã¯ãŠã£ã³ããŠã§ã¯ãªãããã¥ã¡ã³ããªããžã§ã¯ãã§æ€åºããå¿ èŠããããŸãïŒãããã¯fireEventããŠã£ã³ããŠãªããžã§ã¯ãã§äœ¿çšã§ããããšãæå³ããŸããã
var element = document.getElementById('element_id'); if(document.createEvent) // { var o = document.createEvent('MouseEvents'); o.initEvent('click', true, false ); element.dispatchEvent(o); } else if( document.createEventObject ) // IE { o.fireEvent('click'); }
ã€ãã³ãã«é¢ããè¿œå æ å ±ãæäŸããå Žåã¯ãcreateEventObjectã¡ãœããã䜿çšããŠãCreateEventããã³init * Event DOMã¡ãœãããè€è£œããå¿ èŠããããŸãã createEventObjectã¡ãœããã¯éåžžã空ã®ã€ãã³ããªããžã§ã¯ããè¿ãããããã©ã¡ãŒã¿ãèªåã§æ±ºå®ããå¿ èŠããããŸãã
var element = document.getElementById('element_id'); if(document.createEvent) // { var o = document.createEvent('MouseEvents'); o.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null ); element.dispatchEvent(evObj); } else if(document.createEventObject) // IE { var o = document.createEventObject(); o.detail = 0; o.screenX = 12; o.screenY = 345; o.clientX = 7; o.clientY = 220; o.ctrlKey = false; o.altKey = false; o.shiftKey = true; o.metaKey = false; o.button = 0; o.relatedTarget = null; element.fireEvent('click', o); }
ãããã«
ç§ã¯ãã®ãããã¯ãéåžžã«ç°¡æœã«èª¬æããŸãããããã®æ¬è³ªãç解ããã«ã¯ããã§ååã§ãã ã€ãã³ãçæã䜿çšãããšãç»é¢ã®èåŸã§å€ãã®èå³æ·±ãããšãè¡ãããšãã§ãã䜿çšå¯èœãªã€ãã³ãã®æ°ãèãããšããã®ãããã¯ã¯ããã«èå³æ·±ããã®ã«ãªããŸãã
ãã®èšäºã§ã¯ãããã€ãã®äŸãšã€ãã³ãã®ã¿ã€ãã®ã¿ãæäŸããŠããŸãããåé ã®ãªã¹ãããä»ã®ãã®ã説æããããšã¯é£ãããããŸããã æ°ãå€ãããããã¹ãŠãäŒããããšã¯ã§ããŸããããååã¯ããèªäœãç©èªã£ãŠããŸãããã®ãããinquisitiveïŒ usernameïŒ ã¯ãç®çã®ã€ãã³ãã®èª¬æãå®è¡ãããã©ã¡ãŒã¿ãŒã®ãªã¹ããããã³å®è¡ããã¢ã¯ã·ã§ã³ãç°¡åã«Googleã§æ€çŽ¢ããŸãã
ã©ã³ãã ã«çæããã«æåããã©ã€ãã€ãã³ã:)
äœãèªãïŒ
ãã®ãããã¯ã®åºç€ãšãªã£ãèšäº
ã€ãã³ãã¢ãžã¥ãŒã«ã®æ§é ã®èª¬æïŒããŒãã«ãæ¯èŒã
Mozilla MDNã€ãã³ãã«ã€ããŠ