View Javadoc
1   /*
2    * Copyright (c) 2002-2026 Gargoyle Software Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.htmlunit.javascript.host.svg;
16  
17  import static org.htmlunit.javascript.configuration.SupportedBrowser.CHROME;
18  import static org.htmlunit.javascript.configuration.SupportedBrowser.EDGE;
19  import static org.htmlunit.javascript.configuration.SupportedBrowser.FF;
20  import static org.htmlunit.javascript.configuration.SupportedBrowser.FF_ESR;
21  
22  import org.htmlunit.corejs.javascript.Function;
23  import org.htmlunit.javascript.JavaScriptEngine;
24  import org.htmlunit.javascript.configuration.JsxClass;
25  import org.htmlunit.javascript.configuration.JsxConstructor;
26  import org.htmlunit.javascript.configuration.JsxGetter;
27  import org.htmlunit.javascript.configuration.JsxSetter;
28  import org.htmlunit.javascript.host.Element;
29  import org.htmlunit.javascript.host.css.CSSStyleDeclaration;
30  import org.htmlunit.javascript.host.event.Event;
31  import org.htmlunit.javascript.host.event.MouseEvent;
32  import org.htmlunit.svg.SvgElement;
33  
34  /**
35   * JavaScript host object for {@code SVGElement}.
36   *
37   * @author Ahmed Ashour
38   * @author Ronald Brill
39   *
40   * @see <a href="https://developer.mozilla.org/en-US/docs/Web/API/SVGElement">MDN Documentation</a>
41   */
42  @JsxClass(domClass = SvgElement.class)
43  public class SVGElement extends Element {
44  
45      /**
46       * Creates an instance of this object.
47       */
48      @Override
49      @JsxConstructor
50      public void jsConstructor() {
51          throw JavaScriptEngine.typeErrorIllegalConstructor();
52      }
53  
54      /**
55       * Returns the bounding box, in current user space, of the geometry of all contained graphics elements.
56       *
57       * @return the bounding box
58       */
59      protected SVGRect getBBox() {
60          final SVGRect rect = new SVGRect();
61          rect.setParentScope(getParentScope());
62          rect.setPrototype(getPrototype(rect.getClass()));
63          return rect;
64      }
65  
66      /**
67       * {@inheritDoc}
68       */
69      @Override
70      @JsxGetter
71      public CSSStyleDeclaration getStyle() {
72          return super.getStyle();
73      }
74  
75      /**
76       * {@inheritDoc}
77       */
78      @Override
79      @JsxSetter
80      public void setStyle(final String style) {
81          super.setStyle(style);
82      }
83  
84      /**
85       * Returns the {@code onfocus} event handler.
86       *
87       * @return the {@code onfocus} event handler
88       */
89      @JsxGetter
90      public Function getOnfocus() {
91          return getEventHandler(Event.TYPE_FOCUS);
92      }
93  
94      /**
95       * Sets the {@code onfocus} event handler.
96       *
97       * @param focus the {@code onfocus} event handler
98       */
99      @JsxSetter
100     public void setOnfocus(final Object focus) {
101         setEventHandler(Event.TYPE_FOCUS, focus);
102     }
103 
104     /**
105      * Returns the {@code ondragend} event handler.
106      *
107      * @return the {@code ondragend} event handler
108      */
109     @JsxGetter
110     public Function getOndragend() {
111         return getEventHandler(Event.TYPE_DRAGEND);
112     }
113 
114     /**
115      * Sets the {@code ondragend} event handler.
116      *
117      * @param dragend the {@code ondragend} event handler
118      */
119     @JsxSetter
120     public void setOndragend(final Object dragend) {
121         setEventHandler(Event.TYPE_DRAGEND, dragend);
122     }
123 
124     /**
125      * Returns the {@code oninvalid} event handler.
126      *
127      * @return the {@code oninvalid} event handler
128      */
129     @JsxGetter
130     public Function getOninvalid() {
131         return getEventHandler(Event.TYPE_INVALID);
132     }
133 
134     /**
135      * Sets the {@code oninvalid} event handler.
136      *
137      * @param invalid the {@code oninvalid} event handler
138      */
139     @JsxSetter
140     public void setOninvalid(final Object invalid) {
141         setEventHandler(Event.TYPE_INVALID, invalid);
142     }
143 
144     /**
145      * Returns the {@code onpointercancel} event handler for this element.
146      *
147      * @return the {@code onpointercancel} event handler for this element
148      */
149     @JsxGetter({CHROME, EDGE})
150     public Function getOnpointercancel() {
151         return getEventHandler(Event.TYPE_POINTERCANCEL);
152     }
153 
154     /**
155      * Sets the {@code onpointercancel} event handler.
156      *
157      * @param pointercancel the {@code onpointercancel} event handler
158      */
159     @JsxSetter({CHROME, EDGE})
160     public void setOnpointercancel(final Object pointercancel) {
161         setEventHandler(Event.TYPE_POINTERCANCEL, pointercancel);
162     }
163 
164     /**
165      * Returns the {@code onpointerout} event handler for this element.
166      *
167      * @return the {@code onpointerout} event handler for this element
168      */
169     @JsxGetter({CHROME, EDGE})
170     public Function getOnpointerout() {
171         return getEventHandler(Event.TYPE_POINTEROUT);
172     }
173 
174     /**
175      * Sets the {@code onpointerout} event handler.
176      *
177      * @param pointerout the {@code onpointerout} event handler
178      */
179     @JsxSetter({CHROME, EDGE})
180     public void setOnpointerout(final Object pointerout) {
181         setEventHandler(Event.TYPE_POINTEROUT, pointerout);
182     }
183 
184     /**
185      * Returns the {@code onratechange} event handler.
186      *
187      * @return the {@code onratechange} event handler
188      */
189     @JsxGetter
190     public Function getOnratechange() {
191         return getEventHandler(Event.TYPE_RATECHANGE);
192     }
193 
194     /**
195      * Sets the {@code onratechange} event handler.
196      *
197      * @param ratechange the {@code onratechange} event handler
198      */
199     @JsxSetter
200     public void setOnratechange(final Object ratechange) {
201         setEventHandler(Event.TYPE_RATECHANGE, ratechange);
202     }
203 
204     /**
205      * Returns the {@code onresize} event handler.
206      *
207      * @return the {@code onresize} event handler
208      */
209     @JsxGetter
210     public Function getOnresize() {
211         return getEventHandler(Event.TYPE_RESIZE);
212     }
213 
214     /**
215      * Sets the {@code onresize} event handler.
216      *
217      * @param resize the {@code onresize} event handler
218      */
219     @JsxSetter
220     public void setOnresize(final Object resize) {
221         setEventHandler(Event.TYPE_RESIZE, resize);
222     }
223 
224     /**
225      * Returns the {@code oncanplaythrough} event handler.
226      *
227      * @return the {@code oncanplaythrough} event handler
228      */
229     @JsxGetter
230     public Function getOncanplaythrough() {
231         return getEventHandler(Event.TYPE_CANPLAYTHROUGH);
232     }
233 
234     /**
235      * Sets the {@code oncanplaythrough} event handler.
236      *
237      * @param canplaythrough the {@code oncanplaythrough} event handler
238      */
239     @JsxSetter
240     public void setOncanplaythrough(final Object canplaythrough) {
241         setEventHandler(Event.TYPE_CANPLAYTHROUGH, canplaythrough);
242     }
243 
244     /**
245      * Returns the {@code oncancel} event handler.
246      *
247      * @return the {@code oncancel} event handler
248      */
249     @JsxGetter({CHROME, EDGE})
250     public Function getOncancel() {
251         return getEventHandler(Event.TYPE_CANCEL);
252     }
253 
254     /**
255      * Sets the {@code oncancel} event handler.
256      *
257      * @param cancel the {@code oncancel} event handler
258      */
259     @JsxSetter({CHROME, EDGE})
260     public void setOncancel(final Object cancel) {
261         setEventHandler(Event.TYPE_CANCEL, cancel);
262     }
263 
264     /**
265      * Returns the {@code onpointerenter} event handler.
266      *
267      * @return the {@code onpointerenter} event handler
268      */
269     @JsxGetter({CHROME, EDGE})
270     public Function getOnpointerenter() {
271         return getEventHandler(Event.TYPE_POINTERENTER);
272     }
273 
274     /**
275      * Sets the {@code onpointerenter} event handler.
276      *
277      * @param pointerenter the {@code onpointerenter} event handler
278      */
279     @JsxSetter({CHROME, EDGE})
280     public void setOnpointerenter(final Object pointerenter) {
281         setEventHandler(Event.TYPE_POINTERENTER, pointerenter);
282     }
283 
284     /**
285      * Returns the {@code onselect} event handler.
286      *
287      * @return the {@code onselect} event handler
288      */
289     @JsxGetter
290     public Function getOnselect() {
291         return getEventHandler(Event.TYPE_SELECT);
292     }
293 
294     /**
295      * Sets the {@code onselect} event handler.
296      *
297      * @param select the {@code onselect} event handler
298      */
299     @JsxSetter
300     public void setOnselect(final Object select) {
301         setEventHandler(Event.TYPE_SELECT, select);
302     }
303 
304     /**
305      * Returns the {@code onselectstart} event handler for this element.
306      *
307      * @return the {@code onselectstart} event handler for this element
308      */
309     @JsxGetter
310     public Function getOnselectstart() {
311         return getEventHandler(Event.TYPE_SELECTSTART);
312     }
313 
314     /**
315      * Sets the {@code onselectstart} event handler for this element.
316      *
317      * @param onselectstart the {@code onselectstart} event handler for this element
318      */
319     @JsxSetter
320     public void setOnselectstart(final Object onselectstart) {
321         setEventHandler(Event.TYPE_SELECTSTART, onselectstart);
322     }
323 
324     /**
325      * Returns the {@code onselectionchange} event handler for this element.
326      *
327      * @return the {@code onselectionchange} event handler for this element
328      */
329     @JsxGetter
330     public Function getOnselectionchange() {
331         return getEventHandler(Event.TYPE_SELECTIONCHANGE);
332     }
333 
334     /**
335      * Sets the {@code onselectionchange} event handler for this element.
336      *
337      * @param onselectionchange the {@code onselectionchange} event handler for this element
338      */
339     @JsxSetter
340     public void setOnselectionchange(final Object onselectionchange) {
341         setEventHandler(Event.TYPE_SELECTIONCHANGE, onselectionchange);
342     }
343 
344     /**
345      * Returns the {@code onauxclick} event handler.
346      *
347      * @return the {@code onauxclick} event handler
348      */
349     @JsxGetter({CHROME, EDGE})
350     public Function getOnauxclick() {
351         return getEventHandler(Event.TYPE_AUXCLICK);
352     }
353 
354     /**
355      * Sets the {@code onauxclick} event handler.
356      *
357      * @param auxclick the {@code onauxclick} event handler
358      */
359     @JsxSetter({CHROME, EDGE})
360     public void setOnauxclick(final Object auxclick) {
361         setEventHandler(Event.TYPE_AUXCLICK, auxclick);
362     }
363 
364     /**
365      * Returns the {@code onpause} event handler.
366      *
367      * @return the {@code onpause} event handler
368      */
369     @JsxGetter
370     public Function getOnpause() {
371         return getEventHandler(Event.TYPE_PAUSE);
372     }
373 
374     /**
375      * Sets the {@code onpause} event handler.
376      *
377      * @param pause the {@code onpause} event handler
378      */
379     @JsxSetter
380     public void setOnpause(final Object pause) {
381         setEventHandler(Event.TYPE_PAUSE, pause);
382     }
383 
384     /**
385      * Returns the {@code onloadstart} event handler.
386      *
387      * @return the {@code onloadstart} event handler
388      */
389     @JsxGetter
390     public Function getOnloadstart() {
391         return getEventHandler(Event.TYPE_LOAD_START);
392     }
393 
394     /**
395      * Sets the {@code onloadstart} event handler.
396      *
397      * @param loadstart the {@code onloadstart} event handler
398      */
399     @JsxSetter
400     public void setOnloadstart(final Object loadstart) {
401         setEventHandler(Event.TYPE_LOAD_START, loadstart);
402     }
403 
404     /**
405      * Returns the {@code onprogress} event handler.
406      *
407      * @return the {@code onprogress} event handler
408      */
409     @JsxGetter
410     public Function getOnprogress() {
411         return getEventHandler(Event.TYPE_PROGRESS);
412     }
413 
414     /**
415      * Sets the {@code onprogress} event handler.
416      *
417      * @param progress the {@code onprogress} event handler
418      */
419     @JsxSetter
420     public void setOnprogress(final Object progress) {
421         setEventHandler(Event.TYPE_PROGRESS, progress);
422     }
423 
424     /**
425      * Returns the {@code onpointerup} event handler for this element.
426      *
427      * @return the {@code onpointerup} event handler for this element
428      */
429     @JsxGetter({CHROME, EDGE})
430     public Function getOnpointerup() {
431         return getEventHandler(Event.TYPE_POINTERUP);
432     }
433 
434     /**
435      * Sets the {@code onpointerup} event handler.
436      *
437      * @param pointerup the {@code onpointerup} event handler
438      */
439     @JsxSetter({CHROME, EDGE})
440     public void setOnpointerup(final Object pointerup) {
441         setEventHandler(Event.TYPE_POINTERUP, pointerup);
442     }
443 
444     /**
445      * Returns the {@code onscroll} event handler.
446      *
447      * @return the {@code onscroll} event handler
448      */
449     @JsxGetter
450     public Function getOnscroll() {
451         return getEventHandler(Event.TYPE_SCROLL);
452     }
453 
454     /**
455      * Sets the {@code onscroll} event handler.
456      *
457      * @param scroll the {@code onscroll} event handler
458      */
459     @JsxSetter
460     public void setOnscroll(final Object scroll) {
461         setEventHandler(Event.TYPE_SCROLL, scroll);
462     }
463 
464     /**
465      * Returns the {@code onscrollend} event handler.
466      *
467      * @return the {@code onscrollend} event handler
468      */
469     @JsxGetter
470     public Function getOnscrollend() {
471         return getEventHandler(Event.TYPE_SCROLLEND);
472     }
473 
474     /**
475      * Sets the {@code onscrollend} event handler.
476      *
477      * @param scrollend the {@code onscrollend} event handler
478      */
479     @JsxSetter
480     public void setOnscrollend(final Object scrollend) {
481         setEventHandler(Event.TYPE_SCROLLEND, scrollend);
482     }
483 
484     /**
485      * Returns the {@code onkeydown} event handler.
486      *
487      * @return the {@code onkeydown} event handler
488      */
489     @JsxGetter
490     public Function getOnkeydown() {
491         return getEventHandler(Event.TYPE_KEY_DOWN);
492     }
493 
494     /**
495      * Sets the {@code onkeydown} event handler.
496      *
497      * @param keydown the {@code onkeydown} event handler
498      */
499     @JsxSetter
500     public void setOnkeydown(final Object keydown) {
501         setEventHandler(Event.TYPE_KEY_DOWN, keydown);
502     }
503 
504     /**
505      * Returns the {@code onpointerleave} event handler.
506      *
507      * @return the {@code onpointerleave} event handler
508      */
509     @JsxGetter({CHROME, EDGE})
510     public Function getOnpointerleave() {
511         return getEventHandler(Event.TYPE_POINTERLEAVE);
512     }
513 
514     /**
515      * Sets the {@code onpointerleave} event handler.
516      *
517      * @param pointerleave the {@code onpointerleave} event handler
518      */
519     @JsxSetter({CHROME, EDGE})
520     public void setOnpointerleave(final Object pointerleave) {
521         setEventHandler(Event.TYPE_POINTERLEAVE, pointerleave);
522     }
523 
524     /**
525      * Returns the {@code onclick} event handler.
526      *
527      * @return the {@code onclick} event handler
528      */
529     @JsxGetter
530     public Function getOnclick() {
531         return getEventHandler(MouseEvent.TYPE_CLICK);
532     }
533 
534     /**
535      * Sets the {@code onclick} event handler.
536      *
537      * @param click the {@code onclick} event handler
538      */
539     @JsxSetter
540     public void setOnclick(final Object click) {
541         setEventHandler(MouseEvent.TYPE_CLICK, click);
542     }
543 
544     /**
545      * Returns the {@code onkeyup} event handler.
546      *
547      * @return the {@code onkeyup} event handler
548      */
549     @JsxGetter
550     public Function getOnkeyup() {
551         return getEventHandler(Event.TYPE_KEY_UP);
552     }
553 
554     /**
555      * Sets the {@code onkeyup} event handler.
556      *
557      * @param keyup the {@code onkeyup} event handler
558      */
559     @JsxSetter
560     public void setOnkeyup(final Object keyup) {
561         setEventHandler(Event.TYPE_KEY_UP, keyup);
562     }
563 
564     /**
565      * Returns the {@code onchange} event handler.
566      *
567      * @return the {@code onchange} event handler
568      */
569     @JsxGetter
570     public Function getOnchange() {
571         return getEventHandler(Event.TYPE_CHANGE);
572     }
573 
574     /**
575      * Sets the {@code onchange} event handler.
576      *
577      * @param change the {@code onchange} event handler
578      */
579     @JsxSetter
580     public void setOnchange(final Object change) {
581         setEventHandler(Event.TYPE_CHANGE, change);
582     }
583 
584     /**
585      * Returns the {@code onreset} event handler.
586      *
587      * @return the {@code onreset} event handler
588      */
589     @JsxGetter
590     public Function getOnreset() {
591         return getEventHandler(Event.TYPE_RESET);
592     }
593 
594     /**
595      * Sets the {@code onreset} event handler.
596      *
597      * @param reset the {@code onreset} event handler
598      */
599     @JsxSetter
600     public void setOnreset(final Object reset) {
601         setEventHandler(Event.TYPE_RESET, reset);
602     }
603 
604     /**
605      * Returns the {@code onkeypress} event handler.
606      *
607      * @return the {@code onkeypress} event handler
608      */
609     @JsxGetter
610     public Function getOnkeypress() {
611         return getEventHandler(Event.TYPE_KEY_PRESS);
612     }
613 
614     /**
615      * Sets the {@code onkeypress} event handler.
616      *
617      * @param keypress the {@code onkeypress} event handler
618      */
619     @JsxSetter
620     public void setOnkeypress(final Object keypress) {
621         setEventHandler(Event.TYPE_KEY_PRESS, keypress);
622     }
623 
624     /**
625      * Returns the {@code ontimeupdate} event handler.
626      *
627      * @return the {@code ontimeupdate} event handler
628      */
629     @JsxGetter
630     public Function getOntimeupdate() {
631         return getEventHandler(Event.TYPE_TIMEUPDATE);
632     }
633 
634     /**
635      * Sets the {@code ontimeupdate} event handler.
636      *
637      * @param timeupdate the {@code ontimeupdate} event handler
638      */
639     @JsxSetter
640     public void setOntimeupdate(final Object timeupdate) {
641         setEventHandler(Event.TYPE_TIMEUPDATE, timeupdate);
642     }
643 
644     /**
645      * Returns the {@code ondblclick} event handler.
646      *
647      * @return the {@code ondblclick} event handler
648      */
649     @JsxGetter
650     public Function getOndblclick() {
651         return getEventHandler(MouseEvent.TYPE_DBL_CLICK);
652     }
653 
654     /**
655      * Sets the {@code ondblclick} event handler.
656      *
657      * @param dblclick the {@code ondblclick} event handler
658      */
659     @JsxSetter
660     public void setOndblclick(final Object dblclick) {
661         setEventHandler(MouseEvent.TYPE_DBL_CLICK, dblclick);
662     }
663 
664     /**
665      * Returns the {@code ondrag} event handler.
666      *
667      * @return the {@code ondrag} event handler
668      */
669     @JsxGetter
670     public Function getOndrag() {
671         return getEventHandler(Event.TYPE_DRAG);
672     }
673 
674     /**
675      * Sets the {@code ondrag} event handler.
676      *
677      * @param drag the {@code ondrag} event handler
678      */
679     @JsxSetter
680     public void setOndrag(final Object drag) {
681         setEventHandler(Event.TYPE_DRAG, drag);
682     }
683 
684     /**
685      * Returns the {@code onseeked} event handler.
686      *
687      * @return the {@code onseeked} event handler
688      */
689     @JsxGetter
690     public Function getOnseeked() {
691         return getEventHandler(Event.TYPE_SEEKED);
692     }
693 
694     /**
695      * Sets the {@code onseeked} event handler.
696      *
697      * @param seeked the {@code onseeked} event handler
698      */
699     @JsxSetter
700     public void setOnseeked(final Object seeked) {
701         setEventHandler(Event.TYPE_SEEKED, seeked);
702     }
703 
704     /**
705      * Returns the {@code onabort} event handler.
706      *
707      * @return the {@code onabort} event handler
708      */
709     @JsxGetter
710     public Function getOnabort() {
711         return getEventHandler(Event.TYPE_ABORT);
712     }
713 
714     /**
715      * Sets the {@code onabort} event handler.
716      *
717      * @param abort the {@code onabort} event handler
718      */
719     @JsxSetter
720     public void setOnabort(final Object abort) {
721         setEventHandler(Event.TYPE_ABORT, abort);
722     }
723 
724     /**
725      * Returns the {@code onloadedmetadata} event handler.
726      *
727      * @return the {@code onloadedmetadata} event handler
728      */
729     @JsxGetter
730     public Function getOnloadedmetadata() {
731         return getEventHandler(Event.TYPE_LOADEDMETADATA);
732     }
733 
734     /**
735      * Sets the {@code onloadedmetadata} event handler.
736      *
737      * @param loadedmetadata the {@code onloadedmetadata} event handler
738      */
739     @JsxSetter
740     public void setOnloadedmetadata(final Object loadedmetadata) {
741         setEventHandler(Event.TYPE_LOADEDMETADATA, loadedmetadata);
742     }
743 
744     /**
745      * Returns the {@code ontoggle} event handler.
746      *
747      * @return the {@code ontoggle} event handler
748      */
749     @JsxGetter({CHROME, EDGE})
750     public Function getOntoggle() {
751         return getEventHandler(Event.TYPE_TOGGLE);
752     }
753 
754     /**
755      * Sets the {@code ontoggle} event handler.
756      *
757      * @param toggle the {@code ontoggle} event handler
758      */
759     @JsxSetter({CHROME, EDGE})
760     public void setOntoggle(final Object toggle) {
761         setEventHandler(Event.TYPE_TOGGLE, toggle);
762     }
763 
764     /**
765      * Returns the {@code onplay} event handler.
766      *
767      * @return the {@code onplay} event handler
768      */
769     @JsxGetter
770     public Function getOnplay() {
771         return getEventHandler(Event.TYPE_PLAY);
772     }
773 
774     /**
775      * Sets the {@code onplay} event handler.
776      *
777      * @param play the {@code onplay} event handler
778      */
779     @JsxSetter
780     public void setOnplay(final Object play) {
781         setEventHandler(Event.TYPE_PLAY, play);
782     }
783 
784     /**
785      * Returns the {@code oncontextmenu} event handler.
786      *
787      * @return the {@code oncontextmenu} event handler
788      */
789     @JsxGetter
790     public Function getOncontextmenu() {
791         return getEventHandler(MouseEvent.TYPE_CONTEXT_MENU);
792     }
793 
794     /**
795      * Sets the {@code oncontextmenu} event handler.
796      *
797      * @param contextmenu the {@code oncontextmenu} event handler
798      */
799     @JsxSetter
800     public void setOncontextmenu(final Object contextmenu) {
801         setEventHandler(MouseEvent.TYPE_CONTEXT_MENU, contextmenu);
802     }
803 
804     /**
805      * Returns the {@code onmousemove} event handler.
806      *
807      * @return the {@code onmousemove} event handler
808      */
809     @JsxGetter
810     public Function getOnmousemove() {
811         return getEventHandler(MouseEvent.TYPE_MOUSE_MOVE);
812     }
813 
814     /**
815      * Sets the {@code onmousemove} event handler.
816      *
817      * @param mousemove the {@code onmousemove} event handler
818      */
819     @JsxSetter
820     public void setOnmousemove(final Object mousemove) {
821         setEventHandler(MouseEvent.TYPE_MOUSE_MOVE, mousemove);
822     }
823 
824     /**
825      * Returns the {@code onerror} event handler.
826      *
827      * @return the {@code onerror} event handler
828      */
829     @JsxGetter
830     public Function getOnerror() {
831         return getEventHandler(Event.TYPE_ERROR);
832     }
833 
834     /**
835      * Sets the {@code onerror} event handler.
836      *
837      * @param error the {@code onerror} event handler
838      */
839     @JsxSetter
840     public void setOnerror(final Object error) {
841         setEventHandler(Event.TYPE_ERROR, error);
842     }
843 
844     /**
845      * Returns the {@code onmouseup} event handler.
846      *
847      * @return the {@code onmouseup} event handler
848      */
849     @JsxGetter
850     public Function getOnmouseup() {
851         return getEventHandler(MouseEvent.TYPE_MOUSE_UP);
852     }
853 
854     /**
855      * Sets the {@code onmouseup} event handler.
856      *
857      * @param mouseup the {@code onmouseup} event handler
858      */
859     @JsxSetter
860     public void setOnmouseup(final Object mouseup) {
861         setEventHandler(MouseEvent.TYPE_MOUSE_UP, mouseup);
862     }
863 
864     /**
865      * Returns the {@code ondragover} event handler.
866      *
867      * @return the {@code ondragover} event handler
868      */
869     @JsxGetter
870     public Function getOndragover() {
871         return getEventHandler(Event.TYPE_DRAGOVER);
872     }
873 
874     /**
875      * Sets the {@code ondragover} event handler.
876      *
877      * @param dragover the {@code ondragover} event handler
878      */
879     @JsxSetter
880     public void setOndragover(final Object dragover) {
881         setEventHandler(Event.TYPE_DRAGOVER, dragover);
882     }
883 
884     /**
885      * Returns the {@code onpointermove} event handler for this element.
886      *
887      * @return the {@code onpointermove} event handler for this element
888      */
889     @JsxGetter({CHROME, EDGE})
890     public Function getOnpointermove() {
891         return getEventHandler(Event.TYPE_POINTERMOVE);
892     }
893 
894     /**
895      * Sets the {@code onpointermove} event handler.
896      *
897      * @param pointermove the {@code onpointermove} event handler
898      */
899     @JsxSetter({CHROME, EDGE})
900     public void setOnpointermove(final Object pointermove) {
901         setEventHandler(Event.TYPE_POINTERMOVE, pointermove);
902     }
903 
904     /**
905      * Returns the {@code oncut} event handler.
906      *
907      * @return the {@code oncut} event handler
908      */
909     @JsxGetter
910     public Function getOncut() {
911         return getEventHandler(Event.TYPE_CUT);
912     }
913 
914     /**
915      * Sets the {@code oncut} event handler.
916      *
917      * @param cut the {@code oncut} event handler
918      */
919     @JsxSetter
920     public void setOncut(final Object cut) {
921         setEventHandler(Event.TYPE_CUT, cut);
922     }
923 
924     /**
925      * Returns the {@code onmouseover} event handler.
926      *
927      * @return the {@code onmouseover} event handler
928      */
929     @JsxGetter
930     public Function getOnmouseover() {
931         return getEventHandler(MouseEvent.TYPE_MOUSE_OVER);
932     }
933 
934     /**
935      * Sets the {@code onmouseover} event handler.
936      *
937      * @param mouseover the {@code onmouseover} event handler
938      */
939     @JsxSetter
940     public void setOnmouseover(final Object mouseover) {
941         setEventHandler(MouseEvent.TYPE_MOUSE_OVER, mouseover);
942     }
943 
944     /**
945      * Returns the {@code oninput} event handler.
946      *
947      * @return the {@code oninput} event handler
948      */
949     @JsxGetter
950     public Function getOninput() {
951         return getEventHandler(Event.TYPE_INPUT);
952     }
953 
954     /**
955      * Sets the {@code oninput} event handler.
956      *
957      * @param input the {@code oninput} event handler
958      */
959     @JsxSetter
960     public void setOninput(final Object input) {
961         setEventHandler(Event.TYPE_INPUT, input);
962     }
963 
964     /**
965      * Returns the {@code onlostpointercapture} event handler for this element.
966      *
967      * @return the {@code onlostpointercapture} event handler for this element
968      */
969     @JsxGetter({CHROME, EDGE})
970     public Function getOnlostpointercapture() {
971         return getEventHandler(Event.TYPE_LOSTPOINTERCAPTURE);
972     }
973 
974     /**
975      * Sets the {@code onlostpointercapture} event handler.
976      *
977      * @param lostpointercapture the {@code onlostpointercapture} event handler
978      */
979     @JsxSetter({CHROME, EDGE})
980     public void setOnlostpointercapture(final Object lostpointercapture) {
981         setEventHandler(Event.TYPE_LOSTPOINTERCAPTURE, lostpointercapture);
982     }
983 
984     /**
985      * Returns the {@code onstalled} event handler.
986      *
987      * @return the {@code onstalled} event handler
988      */
989     @JsxGetter
990     public Function getOnstalled() {
991         return getEventHandler(Event.TYPE_STALLED);
992     }
993 
994     /**
995      * Sets the {@code onstalled} event handler.
996      *
997      * @param stalled the {@code onstalled} event handler
998      */
999     @JsxSetter
1000     public void setOnstalled(final Object stalled) {
1001         setEventHandler(Event.TYPE_STALLED, stalled);
1002     }
1003 
1004     /**
1005      * Returns the {@code onpointerover} event handler for this element.
1006      *
1007      * @return the {@code onpointerover} event handler for this element
1008      */
1009     @JsxGetter({CHROME, EDGE})
1010     public Function getOnpointerover() {
1011         return getEventHandler(Event.TYPE_POINTEROVER);
1012     }
1013 
1014     /**
1015      * Sets the {@code onpointerover} event handler.
1016      *
1017      * @param pointerover the {@code onpointerover} event handler
1018      */
1019     @JsxSetter({CHROME, EDGE})
1020     public void setOnpointerover(final Object pointerover) {
1021         setEventHandler(Event.TYPE_POINTEROVER, pointerover);
1022     }
1023 
1024     /**
1025      * Returns the {@code onclose} event handler.
1026      *
1027      * @return the {@code onclose} event handler
1028      */
1029     @JsxGetter
1030     public Function getOnclose() {
1031         return getEventHandler(Event.TYPE_CLOSE);
1032     }
1033 
1034     /**
1035      * Sets the {@code onclose} event handler.
1036      *
1037      * @param close the {@code onclose} event handler
1038      */
1039     @JsxSetter
1040     public void setOnclose(final Object close) {
1041         setEventHandler(Event.TYPE_CLOSE, close);
1042     }
1043 
1044     /**
1045      * Returns the {@code ondragenter} event handler.
1046      *
1047      * @return the {@code ondragenter} event handler
1048      */
1049     @JsxGetter
1050     public Function getOndragenter() {
1051         return getEventHandler(Event.TYPE_DRAGENTER);
1052     }
1053 
1054     /**
1055      * Sets the {@code ondragenter} event handler.
1056      *
1057      * @param dragenter the {@code ondragenter} event handler
1058      */
1059     @JsxSetter
1060     public void setOndragenter(final Object dragenter) {
1061         setEventHandler(Event.TYPE_DRAGENTER, dragenter);
1062     }
1063 
1064     /**
1065      * Returns the {@code onmozfullscreenerror} event handler.
1066      *
1067      * @return the {@code onmozfullscreenerror} event handler
1068      */
1069     @JsxGetter({FF, FF_ESR})
1070     public Function getOnmozfullscreenerror() {
1071         return getEventHandler(Event.TYPE_MOZFULLSCREENERROR);
1072     }
1073 
1074     /**
1075      * Sets the {@code onmozfullscreenerror} event handler.
1076      *
1077      * @param mozfullscreenerror the {@code onmozfullscreenerror} event handler
1078      */
1079     @JsxSetter({FF, FF_ESR})
1080     public void setOnmozfullscreenerror(final Object mozfullscreenerror) {
1081         setEventHandler(Event.TYPE_MOZFULLSCREENERROR, mozfullscreenerror);
1082     }
1083 
1084     /**
1085      * Returns the {@code onsubmit} event handler.
1086      *
1087      * @return the {@code onsubmit} event handler
1088      */
1089     @JsxGetter
1090     public Function getOnsubmit() {
1091         return getEventHandler(Event.TYPE_SUBMIT);
1092     }
1093 
1094     /**
1095      * Sets the {@code onsubmit} event handler.
1096      *
1097      * @param submit the {@code onsubmit} event handler
1098      */
1099     @JsxSetter
1100     public void setOnsubmit(final Object submit) {
1101         setEventHandler(Event.TYPE_SUBMIT, submit);
1102     }
1103 
1104     /**
1105      * Returns the {@code onmouseleave} event handler.
1106      *
1107      * @return the {@code onmouseleave} event handler
1108      */
1109     @JsxGetter
1110     public Function getOnmouseleave() {
1111         return getEventHandler(Event.TYPE_MOUSELEAVE);
1112     }
1113 
1114     /**
1115      * Sets the {@code onmouseleave} event handler.
1116      *
1117      * @param mouseleave the {@code onmouseleave} event handler
1118      */
1119     @JsxSetter
1120     public void setOnmouseleave(final Object mouseleave) {
1121         setEventHandler(Event.TYPE_MOUSELEAVE, mouseleave);
1122     }
1123 
1124     /**
1125      * Returns the {@code onmouseenter} event handler.
1126      *
1127      * @return the {@code onmouseenter} event handler
1128      */
1129     @JsxGetter
1130     public Function getOnmouseenter() {
1131         return getEventHandler(Event.TYPE_MOUDEENTER);
1132     }
1133 
1134     /**
1135      * Sets the {@code onmouseenter} event handler.
1136      *
1137      * @param mouseenter the {@code onmouseenter} event handler
1138      */
1139     @JsxSetter
1140     public void setOnmouseenter(final Object mouseenter) {
1141         setEventHandler(Event.TYPE_MOUDEENTER, mouseenter);
1142     }
1143 
1144     /**
1145      * Returns the {@code ondragleave} event handler.
1146      *
1147      * @return the {@code ondragleave} event handler
1148      */
1149     @JsxGetter
1150     public Function getOndragleave() {
1151         return getEventHandler(Event.TYPE_DRAGLEAVE);
1152     }
1153 
1154     /**
1155      * Sets the {@code ondragleave} event handler.
1156      *
1157      * @param dragleave the {@code ondragleave} event handler
1158      */
1159     @JsxSetter
1160     public void setOndragleave(final Object dragleave) {
1161         setEventHandler(Event.TYPE_DRAGLEAVE, dragleave);
1162     }
1163 
1164     /**
1165      * Returns the {@code onmousewheel} event handler.
1166      *
1167      * @return the {@code onmousewheel} event handler
1168      */
1169     @JsxGetter({CHROME, EDGE})
1170     public Function getOnmousewheel() {
1171         return getEventHandler(Event.TYPE_MOUSEWHEEL);
1172     }
1173 
1174     /**
1175      * Sets the {@code onmousewheel} event handler.
1176      *
1177      * @param mousewheel the {@code onmousewheel} event handler
1178      */
1179     @JsxSetter({CHROME, EDGE})
1180     public void setOnmousewheel(final Object mousewheel) {
1181         setEventHandler(Event.TYPE_MOUSEWHEEL, mousewheel);
1182     }
1183 
1184     /**
1185      * Returns the {@code onpointerdown} event handler for this element.
1186      *
1187      * @return the {@code onpointerdown} event handler for this element
1188      */
1189     @JsxGetter({CHROME, EDGE})
1190     public Function getOnpointerdown() {
1191         return getEventHandler(Event.TYPE_POINTERDOWN);
1192     }
1193 
1194     /**
1195      * Sets the {@code onpointerdown} event handler.
1196      *
1197      * @param pointerdown the {@code onpointerdown} event handler
1198      */
1199     @JsxSetter({CHROME, EDGE})
1200     public void setOnpointerdown(final Object pointerdown) {
1201         setEventHandler(Event.TYPE_POINTERDOWN, pointerdown);
1202     }
1203 
1204     /**
1205      * Returns the {@code onseeking} event handler.
1206      *
1207      * @return the {@code onseeking} event handler
1208      */
1209     @JsxGetter
1210     public Function getOnseeking() {
1211         return getEventHandler(Event.TYPE_SEEKING);
1212     }
1213 
1214     /**
1215      * Sets the {@code onseeking} event handler.
1216      *
1217      * @param seeking the {@code onseeking} event handler
1218      */
1219     @JsxSetter
1220     public void setOnseeking(final Object seeking) {
1221         setEventHandler(Event.TYPE_SEEKING, seeking);
1222     }
1223 
1224     /**
1225      * Returns the {@code onblur} event handler.
1226      *
1227      * @return the {@code onblur} event handler
1228      */
1229     @JsxGetter
1230     public Function getOnblur() {
1231         return getEventHandler(Event.TYPE_BLUR);
1232     }
1233 
1234     /**
1235      * Sets the {@code onblur} event handler.
1236      *
1237      * @param blur the {@code onblur} event handler
1238      */
1239     @JsxSetter
1240     public void setOnblur(final Object blur) {
1241         setEventHandler(Event.TYPE_BLUR, blur);
1242     }
1243 
1244     /**
1245      * Returns the {@code oncuechange} event handler.
1246      *
1247      * @return the {@code oncuechange} event handler
1248      */
1249     @JsxGetter({CHROME, EDGE})
1250     public Function getOncuechange() {
1251         return getEventHandler(Event.TYPE_CUECHANGE);
1252     }
1253 
1254     /**
1255      * Sets the {@code oncuechange} event handler.
1256      *
1257      * @param cuechange the {@code oncuechange} event handler
1258      */
1259     @JsxSetter({CHROME, EDGE})
1260     public void setOncuechange(final Object cuechange) {
1261         setEventHandler(Event.TYPE_CUECHANGE, cuechange);
1262     }
1263 
1264     /**
1265      * Returns the {@code ondrop} event handler.
1266      *
1267      * @return the {@code ondrop} event handler
1268      */
1269     @JsxGetter
1270     public Function getOndrop() {
1271         return getEventHandler(Event.TYPE_DROP);
1272     }
1273 
1274     /**
1275      * Sets the {@code ondrop} event handler.
1276      *
1277      * @param drop the {@code ondrop} event handler
1278      */
1279     @JsxSetter
1280     public void setOndrop(final Object drop) {
1281         setEventHandler(Event.TYPE_DROP, drop);
1282     }
1283 
1284     /**
1285      * Returns the {@code ondragstart} event handler.
1286      *
1287      * @return the {@code ondragstart} event handler
1288      */
1289     @JsxGetter
1290     public Function getOndragstart() {
1291         return getEventHandler(Event.TYPE_DRAGSTART);
1292     }
1293 
1294     /**
1295      * Sets the {@code ondragstart} event handler.
1296      *
1297      * @param dragstart the {@code ondragstart} event handler
1298      */
1299     @JsxSetter
1300     public void setOndragstart(final Object dragstart) {
1301         setEventHandler(Event.TYPE_DRAGSTART, dragstart);
1302     }
1303 
1304     /**
1305      * Returns the {@code onmozfullscreenchange} event handler.
1306      *
1307      * @return the {@code onmozfullscreenchange} event handler
1308      */
1309     @JsxGetter({FF, FF_ESR})
1310     public Function getOnmozfullscreenchange() {
1311         return getEventHandler(Event.TYPE_MOZFULLSCREENCHANGE);
1312     }
1313 
1314     /**
1315      * Sets the {@code onmozfullscreenchange} event handler.
1316      *
1317      * @param mozfullscreenchange the {@code onmozfullscreenchange} event handler
1318      */
1319     @JsxSetter({FF, FF_ESR})
1320     public void setOnmozfullscreenchange(final Object mozfullscreenchange) {
1321         setEventHandler(Event.TYPE_MOZFULLSCREENCHANGE, mozfullscreenchange);
1322     }
1323 
1324     /**
1325      * Returns the {@code ondurationchange} event handler.
1326      *
1327      * @return the {@code ondurationchange} event handler
1328      */
1329     @JsxGetter
1330     public Function getOndurationchange() {
1331         return getEventHandler(Event.TYPE_DURATIONCHANGE);
1332     }
1333 
1334     /**
1335      * Sets the {@code ondurationchange} event handler.
1336      *
1337      * @param durationchange the {@code ondurationchange} event handler
1338      */
1339     @JsxSetter
1340     public void setOndurationchange(final Object durationchange) {
1341         setEventHandler(Event.TYPE_DURATIONCHANGE, durationchange);
1342     }
1343 
1344     /**
1345      * Returns the {@code onplaying} event handler.
1346      *
1347      * @return the {@code onplaying} event handler
1348      */
1349     @JsxGetter
1350     public Function getOnplaying() {
1351         return getEventHandler(Event.TYPE_PLAYING);
1352     }
1353 
1354     /**
1355      * Sets the {@code onplaying} event handler.
1356      *
1357      * @param playing the {@code onplaying} event handler
1358      */
1359     @JsxSetter
1360     public void setOnplaying(final Object playing) {
1361         setEventHandler(Event.TYPE_PLAYING, playing);
1362     }
1363 
1364     /**
1365      * Returns the {@code onload} event handler.
1366      *
1367      * @return the {@code onload} event handler
1368      */
1369     @JsxGetter
1370     public Function getOnload() {
1371         return getEventHandler(Event.TYPE_LOAD);
1372     }
1373 
1374     /**
1375      * Sets the {@code onload} event handler.
1376      *
1377      * @param load the {@code onload} event handler
1378      */
1379     @JsxSetter
1380     public void setOnload(final Object load) {
1381         setEventHandler(Event.TYPE_LOAD, load);
1382     }
1383 
1384     /**
1385      * Returns the {@code onended} event handler.
1386      *
1387      * @return the {@code onended} event handler
1388      */
1389     @JsxGetter
1390     public Function getOnended() {
1391         return getEventHandler(Event.TYPE_ENDED);
1392     }
1393 
1394     /**
1395      * Sets the {@code onended} event handler.
1396      *
1397      * @param ended the {@code onended} event handler
1398      */
1399     @JsxSetter
1400     public void setOnended(final Object ended) {
1401         setEventHandler(Event.TYPE_ENDED, ended);
1402     }
1403 
1404     /**
1405      * Returns the {@code onloadeddata} event handler.
1406      *
1407      * @return the {@code onloadeddata} event handler
1408      */
1409     @JsxGetter
1410     public Function getOnloadeddata() {
1411         return getEventHandler(Event.TYPE_LOADEDDATA);
1412     }
1413 
1414     /**
1415      * Sets the {@code onloadeddata} event handler.
1416      *
1417      * @param loadeddata the {@code onloadeddata} event handler
1418      */
1419     @JsxSetter
1420     public void setOnloadeddata(final Object loadeddata) {
1421         setEventHandler(Event.TYPE_LOADEDDATA, loadeddata);
1422     }
1423 
1424     /**
1425      * Returns the {@code oncopy} event handler.
1426      *
1427      * @return the {@code oncopy} event handler
1428      */
1429     @JsxGetter
1430     public Function getOncopy() {
1431         return getEventHandler(Event.TYPE_COPY);
1432     }
1433 
1434     /**
1435      * Sets the {@code oncopy} event handler.
1436      *
1437      * @param copy the {@code oncopy} event handler
1438      */
1439     @JsxSetter
1440     public void setOncopy(final Object copy) {
1441         setEventHandler(Event.TYPE_COPY, copy);
1442     }
1443 
1444     /**
1445      * Returns the {@code onpaste} event handler.
1446      *
1447      * @return the {@code onpaste} event handler
1448      */
1449     @JsxGetter
1450     public Function getOnpaste() {
1451         return getEventHandler(Event.TYPE_PASTE);
1452     }
1453 
1454     /**
1455      * Sets the {@code onpaste} event handler.
1456      *
1457      * @param paste the {@code onpaste} event handler
1458      */
1459     @JsxSetter
1460     public void setOnpaste(final Object paste) {
1461         setEventHandler(Event.TYPE_PASTE, paste);
1462     }
1463 
1464     /**
1465      * Returns the {@code onmouseout} event handler.
1466      *
1467      * @return the {@code onmouseout} event handler
1468      */
1469     @JsxGetter
1470     public Function getOnmouseout() {
1471         return getEventHandler(MouseEvent.TYPE_MOUSE_OUT);
1472     }
1473 
1474     /**
1475      * Sets the {@code onmouseout} event handler.
1476      *
1477      * @param mouseout the {@code onmouseout} event handler
1478      */
1479     @JsxSetter
1480     public void setOnmouseout(final Object mouseout) {
1481         setEventHandler(MouseEvent.TYPE_MOUSE_OUT, mouseout);
1482     }
1483 
1484     /**
1485      * Returns the {@code onsuspend} event handler.
1486      *
1487      * @return the {@code onsuspend} event handler
1488      */
1489     @JsxGetter
1490     public Function getOnsuspend() {
1491         return getEventHandler(Event.TYPE_SUSPEND);
1492     }
1493 
1494     /**
1495      * Sets the {@code onsuspend} event handler.
1496      *
1497      * @param suspend the {@code onsuspend} event handler
1498      */
1499     @JsxSetter
1500     public void setOnsuspend(final Object suspend) {
1501         setEventHandler(Event.TYPE_SUSPEND, suspend);
1502     }
1503 
1504     /**
1505      * Returns the {@code onvolumechange} event handler.
1506      *
1507      * @return the {@code onvolumechange} event handler
1508      */
1509     @JsxGetter
1510     public Function getOnvolumechange() {
1511         return getEventHandler(Event.TYPE_VOLUMECHANGE);
1512     }
1513 
1514     /**
1515      * Sets the {@code onvolumechange} event handler.
1516      *
1517      * @param volumechange the {@code onvolumechange} event handler
1518      */
1519     @JsxSetter
1520     public void setOnvolumechange(final Object volumechange) {
1521         setEventHandler(Event.TYPE_VOLUMECHANGE, volumechange);
1522     }
1523 
1524     /**
1525      * Returns the {@code onwaiting} event handler.
1526      *
1527      * @return the {@code onwaiting} event handler
1528      */
1529     @JsxGetter
1530     public Function getOnwaiting() {
1531         return getEventHandler(Event.TYPE_WAITING);
1532     }
1533 
1534     /**
1535      * Sets the {@code onwaiting} event handler.
1536      *
1537      * @param waiting the {@code onwaiting} event handler
1538      */
1539     @JsxSetter
1540     public void setOnwaiting(final Object waiting) {
1541         setEventHandler(Event.TYPE_WAITING, waiting);
1542     }
1543 
1544     /**
1545      * Returns the {@code oncanplay} event handler.
1546      *
1547      * @return the {@code oncanplay} event handler
1548      */
1549     @JsxGetter
1550     public Function getOncanplay() {
1551         return getEventHandler(Event.TYPE_CANPLAY);
1552     }
1553 
1554     /**
1555      * Sets the {@code oncanplay} event handler.
1556      *
1557      * @param canplay the {@code oncanplay} event handler
1558      */
1559     @JsxSetter
1560     public void setOncanplay(final Object canplay) {
1561         setEventHandler(Event.TYPE_CANPLAY, canplay);
1562     }
1563 
1564     /**
1565      * Returns the {@code onmousedown} event handler.
1566      *
1567      * @return the {@code onmousedown} event handler
1568      */
1569     @JsxGetter
1570     public Function getOnmousedown() {
1571         return getEventHandler(MouseEvent.TYPE_MOUSE_DOWN);
1572     }
1573 
1574     /**
1575      * Sets the {@code onmousedown} event handler.
1576      *
1577      * @param mousedown the {@code onmousedown} event handler
1578      */
1579     @JsxSetter
1580     public void setOnmousedown(final Object mousedown) {
1581         setEventHandler(MouseEvent.TYPE_MOUSE_DOWN, mousedown);
1582     }
1583 
1584     /**
1585      * Returns the {@code onemptied} event handler.
1586      *
1587      * @return the {@code onemptied} event handler
1588      */
1589     @JsxGetter
1590     public Function getOnemptied() {
1591         return getEventHandler(Event.TYPE_EMPTIED);
1592     }
1593 
1594     /**
1595      * Sets the {@code onemptied} event handler.
1596      *
1597      * @param emptied the {@code onemptied} event handler
1598      */
1599     @JsxSetter
1600     public void setOnemptied(final Object emptied) {
1601         setEventHandler(Event.TYPE_EMPTIED, emptied);
1602     }
1603 
1604     /**
1605      * Returns the {@code ongotpointercapture} event handler for this element.
1606      *
1607      * @return the {@code ongotpointercapture} event handler for this element
1608      */
1609     @JsxGetter({CHROME, EDGE})
1610     public Function getOngotpointercapture() {
1611         return getEventHandler(Event.TYPE_GOTPOINTERCAPTURE);
1612     }
1613 
1614     /**
1615      * Sets the {@code ongotpointercapture} event handler.
1616      *
1617      * @param gotpointercapture the {@code ongotpointercapture} event handler
1618      */
1619     @JsxSetter({CHROME, EDGE})
1620     public void setOngotpointercapture(final Object gotpointercapture) {
1621         setEventHandler(Event.TYPE_GOTPOINTERCAPTURE, gotpointercapture);
1622     }
1623 
1624     /**
1625      * Returns the {@code onwheel} event handler for this element.
1626      *
1627      * @return the {@code onwheel} event handler for this element
1628      */
1629     @JsxGetter({CHROME, EDGE})
1630     @Override
1631     public Function getOnwheel() {
1632         return getEventHandler(Event.TYPE_WHEEL);
1633     }
1634 
1635     /**
1636      * Sets the {@code onwheel} event handler for this element.
1637      *
1638      * @param onwheel the {@code onwheel} event handler for this element
1639      */
1640     @JsxSetter({CHROME, EDGE})
1641     @Override
1642     public void setOnwheel(final Object onwheel) {
1643         setEventHandler(Event.TYPE_WHEEL, onwheel);
1644     }
1645 }