happy-dom 2.47.0 → 2.47.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (37) hide show
  1. package/lib/config/ElementTag.d.ts +128 -21
  2. package/lib/config/ElementTag.js +128 -21
  3. package/lib/config/ElementTag.js.map +1 -1
  4. package/lib/config/NonImplemenetedElementClasses.d.ts +2 -0
  5. package/lib/config/NonImplemenetedElementClasses.js +64 -0
  6. package/lib/config/NonImplemenetedElementClasses.js.map +1 -0
  7. package/lib/custom-element/CustomElementRegistry.d.ts +3 -1
  8. package/lib/custom-element/CustomElementRegistry.js +15 -14
  9. package/lib/custom-element/CustomElementRegistry.js.map +1 -1
  10. package/lib/event/EventTarget.js +1 -1
  11. package/lib/event/EventTarget.js.map +1 -1
  12. package/lib/index.d.ts +1 -5
  13. package/lib/index.js +1 -9
  14. package/lib/index.js.map +1 -1
  15. package/lib/nodes/document/Document.js +5 -6
  16. package/lib/nodes/document/Document.js.map +1 -1
  17. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts +18 -0
  18. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +76 -0
  19. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -0
  20. package/lib/window/IWindow.d.ts +2 -0
  21. package/lib/window/Window.d.ts +2 -0
  22. package/lib/window/Window.js +8 -6
  23. package/lib/window/Window.js.map +1 -1
  24. package/package.json +3 -3
  25. package/src/config/ElementTag.ts +128 -21
  26. package/src/config/NonImplemenetedElementClasses.ts +61 -0
  27. package/src/custom-element/CustomElementRegistry.ts +16 -14
  28. package/src/event/EventTarget.ts +1 -1
  29. package/src/index.ts +0 -8
  30. package/src/nodes/document/Document.ts +6 -6
  31. package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +52 -0
  32. package/src/window/IWindow.ts +2 -0
  33. package/src/window/Window.ts +5 -3
  34. package/lib/config/ElementClass.d.ts +0 -65
  35. package/lib/config/ElementClass.js +0 -70
  36. package/lib/config/ElementClass.js.map +0 -1
  37. package/src/config/ElementClass.ts +0 -65
package/src/index.ts CHANGED
@@ -99,10 +99,6 @@ import TreeWalker from './tree-walker/TreeWalker';
99
99
  import CustomElementRegistry from './custom-element/CustomElementRegistry';
100
100
  import XMLParser from './xml-parser/XMLParser';
101
101
  import XMLSerializer from './xml-serializer/XMLSerializer';
102
- import ElementTag from './config/ElementTag';
103
- import SelfClosingElements from './config/SelfClosingElements';
104
- import UnclosedElements from './config/UnclosedElements';
105
- import ChildLessElements from './config/ChildLessElements';
106
102
  import CSSStyleSheet from './css/CSSStyleSheet';
107
103
  import Storage from './storage/Storage';
108
104
  import URLSearchParams from './url-search-params/URLSearchParams';
@@ -210,10 +206,6 @@ export {
210
206
  CustomElementRegistry,
211
207
  XMLParser,
212
208
  XMLSerializer,
213
- ElementTag,
214
- SelfClosingElements,
215
- UnclosedElements,
216
- ChildLessElements,
217
209
  CSSStyleSheet,
218
210
  Storage,
219
211
  URLSearchParams,
@@ -1,5 +1,5 @@
1
1
  import Element from '../element/Element';
2
- import HTMLElement from '../html-element/HTMLElement';
2
+ import HTMLUnknownElement from '../html-unknown-element/HTMLUnknownElement';
3
3
  import Text from '../text/Text';
4
4
  import Comment from '../comment/Comment';
5
5
  import Window from '../../window/Window';
@@ -572,21 +572,21 @@ export default class Document extends Node implements IDocument {
572
572
  qualifiedName: string,
573
573
  options?: { is: string }
574
574
  ): IElement {
575
+ const tagName = qualifiedName.toUpperCase();
576
+
575
577
  let customElementClass;
576
578
  if (this.defaultView && options && options.is) {
577
579
  customElementClass = this.defaultView.customElements.get(options.is);
578
580
  } else if (this.defaultView) {
579
- customElementClass = this.defaultView.customElements.get(qualifiedName);
581
+ customElementClass = this.defaultView.customElements.get(tagName);
580
582
  }
581
583
 
582
- const elementClass = customElementClass
583
- ? customElementClass
584
- : ElementTag[qualifiedName] || HTMLElement;
584
+ const elementClass = customElementClass || ElementTag[tagName] || HTMLUnknownElement;
585
585
 
586
586
  elementClass.ownerDocument = this;
587
587
 
588
588
  const element = new elementClass();
589
- element.tagName = qualifiedName.toUpperCase();
589
+ element.tagName = tagName;
590
590
  element.ownerDocument = this;
591
591
  element.namespaceURI = namespaceURI;
592
592
 
@@ -0,0 +1,52 @@
1
+ import HTMLElement from '../html-element/HTMLElement';
2
+ import INode from '../node/INode';
3
+ import IHTMLElement from '../html-element/IHTMLElement';
4
+
5
+ /**
6
+ * HTML Unknown Element.
7
+ *
8
+ * Reference:
9
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement.
10
+ */
11
+ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElement {
12
+ private _customElementDefineCallback: () => void = null;
13
+
14
+ /**
15
+ * Connects this element to another element.
16
+ *
17
+ * @param parentNode Parent node.
18
+ */
19
+ public _connectToNode(parentNode: INode = null): void {
20
+ const tagName = this.tagName;
21
+
22
+ // This element can potentially be a custom element that has not been defined yet
23
+ // Therefore we need to register a callback for when it is defined in CustomElementRegistry and replace it with the registered element (see #404)
24
+ if (tagName.includes('-')) {
25
+ const callbacks = this.ownerDocument.defaultView.customElements._callbacks;
26
+
27
+ if (parentNode && !this._customElementDefineCallback) {
28
+ const callback = (): void => {
29
+ if (this.parentNode) {
30
+ const newElement = this.ownerDocument.createElement(tagName);
31
+ this.parentNode.insertBefore(newElement, this);
32
+ this.parentNode.removeChild(this);
33
+ }
34
+ };
35
+ callbacks[tagName] = callbacks[tagName] || [];
36
+ callbacks[tagName].push(callback);
37
+ this._customElementDefineCallback = callback;
38
+ } else if (!parentNode && callbacks[tagName] && this._customElementDefineCallback) {
39
+ const index = callbacks[tagName].indexOf(this._customElementDefineCallback);
40
+ if (index !== -1) {
41
+ callbacks[tagName].splice(index, 1);
42
+ }
43
+ if (!callbacks[tagName].length) {
44
+ delete callbacks[tagName];
45
+ }
46
+ this._customElementDefineCallback = null;
47
+ }
48
+ }
49
+
50
+ super._connectToNode(parentNode);
51
+ }
52
+ }
@@ -11,6 +11,7 @@ import Element from '../nodes/element/Element';
11
11
  import HTMLTemplateElement from '../nodes/html-template-element/HTMLTemplateElement';
12
12
  import HTMLFormElement from '../nodes/html-form-element/HTMLFormElement';
13
13
  import HTMLElement from '../nodes/html-element/HTMLElement';
14
+ import HTMLUnknownElement from '../nodes/html-unknown-element/HTMLUnknownElement';
14
15
  import HTMLInputElement from '../nodes/html-input-element/HTMLInputElement';
15
16
  import HTMLTextAreaElement from '../nodes/html-text-area-element/HTMLTextAreaElement';
16
17
  import HTMLLinkElement from '../nodes/html-link-element/HTMLLinkElement';
@@ -90,6 +91,7 @@ export default interface IWindow extends IEventTarget {
90
91
  // Global classes
91
92
  readonly Node: typeof Node;
92
93
  readonly HTMLElement: typeof HTMLElement;
94
+ readonly HTMLUnknownElement: typeof HTMLUnknownElement;
93
95
  readonly HTMLTemplateElement: typeof HTMLTemplateElement;
94
96
  readonly HTMLFormElement: typeof HTMLFormElement;
95
97
  readonly HTMLInputElement: typeof HTMLInputElement;
@@ -12,6 +12,7 @@ import Element from '../nodes/element/Element';
12
12
  import HTMLTemplateElement from '../nodes/html-template-element/HTMLTemplateElement';
13
13
  import HTMLFormElement from '../nodes/html-form-element/HTMLFormElement';
14
14
  import HTMLElement from '../nodes/html-element/HTMLElement';
15
+ import HTMLUnknownElement from '../nodes/html-unknown-element/HTMLUnknownElement';
15
16
  import HTMLInputElement from '../nodes/html-input-element/HTMLInputElement';
16
17
  import HTMLTextAreaElement from '../nodes/html-text-area-element/HTMLTextAreaElement';
17
18
  import HTMLLinkElement from '../nodes/html-link-element/HTMLLinkElement';
@@ -37,7 +38,7 @@ import URL from '../location/URL';
37
38
  import Location from '../location/Location';
38
39
  import NonImplementedEventTypes from '../event/NonImplementedEventTypes';
39
40
  import MutationObserver from '../mutation-observer/MutationObserver';
40
- import ElementClass from '../config/ElementClass';
41
+ import NonImplemenetedElementClasses from '../config/NonImplemenetedElementClasses';
41
42
  import DOMParser from '../dom-parser/DOMParser';
42
43
  import XMLSerializer from '../xml-serializer/XMLSerializer';
43
44
  import ResizeObserver from '../resize-observer/ResizeObserver';
@@ -101,6 +102,7 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
101
102
  // Global classes
102
103
  public readonly Node = Node;
103
104
  public readonly HTMLElement = HTMLElement;
105
+ public readonly HTMLUnknownElement = HTMLUnknownElement;
104
106
  public readonly HTMLTemplateElement = HTMLTemplateElement;
105
107
  public readonly HTMLFormElement = HTMLFormElement;
106
108
  public readonly HTMLInputElement = HTMLInputElement;
@@ -282,9 +284,9 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
282
284
  }
283
285
  }
284
286
 
285
- for (const className of Object.keys(ElementClass)) {
287
+ for (const className of NonImplemenetedElementClasses) {
286
288
  if (!this[className]) {
287
- this[className] = ElementClass[className];
289
+ this[className] = HTMLElement;
288
290
  }
289
291
  }
290
292
 
@@ -1,65 +0,0 @@
1
- import HTMLElement from '../nodes/html-element/HTMLElement';
2
- declare const _default: {
3
- HTMLElement: typeof HTMLElement;
4
- HTMLHeadElement: typeof HTMLElement;
5
- HTMLTitleElement: typeof HTMLElement;
6
- HTMLBaseElement: typeof HTMLElement;
7
- HTMLMetaElement: typeof HTMLElement;
8
- HTMLBodyElement: typeof HTMLElement;
9
- HTMLHeadingElement: typeof HTMLElement;
10
- HTMLParagraphElement: typeof HTMLElement;
11
- HTMLHRElement: typeof HTMLElement;
12
- HTMLPreElement: typeof HTMLElement;
13
- HTMLUListElement: typeof HTMLElement;
14
- HTMLOListElement: typeof HTMLElement;
15
- HTMLLIElement: typeof HTMLElement;
16
- HTMLMenuElement: typeof HTMLElement;
17
- HTMLDListElement: typeof HTMLElement;
18
- HTMLDivElement: typeof HTMLElement;
19
- HTMLAnchorElement: typeof HTMLElement;
20
- HTMLAreaElement: typeof HTMLElement;
21
- HTMLBRElement: typeof HTMLElement;
22
- HTMLButtonElement: typeof HTMLElement;
23
- HTMLCanvasElement: typeof HTMLElement;
24
- HTMLDataElement: typeof HTMLElement;
25
- HTMLDataListElement: typeof HTMLElement;
26
- HTMLDetailsElement: typeof HTMLElement;
27
- HTMLDialogElement: typeof HTMLElement;
28
- HTMLDirectoryElement: typeof HTMLElement;
29
- HTMLFieldSetElement: typeof HTMLElement;
30
- HTMLFontElement: typeof HTMLElement;
31
- HTMLHtmlElement: typeof HTMLElement;
32
- HTMLLegendElement: typeof HTMLElement;
33
- HTMLMapElement: typeof HTMLElement;
34
- HTMLMarqueeElement: typeof HTMLElement;
35
- HTMLMediaElement: typeof HTMLElement;
36
- HTMLMeterElement: typeof HTMLElement;
37
- HTMLModElement: typeof HTMLElement;
38
- HTMLOptGroupElement: typeof HTMLElement;
39
- HTMLOptionElement: typeof HTMLElement;
40
- HTMLOutputElement: typeof HTMLElement;
41
- HTMLPictureElement: typeof HTMLElement;
42
- HTMLProgressElement: typeof HTMLElement;
43
- HTMLQuoteElement: typeof HTMLElement;
44
- HTMLSelectElement: typeof HTMLElement;
45
- HTMLSourceElement: typeof HTMLElement;
46
- HTMLSpanElement: typeof HTMLElement;
47
- HTMLTableCaptionElement: typeof HTMLElement;
48
- HTMLTableCellElement: typeof HTMLElement;
49
- HTMLTableColElement: typeof HTMLElement;
50
- HTMLTableElement: typeof HTMLElement;
51
- HTMLTimeElement: typeof HTMLElement;
52
- HTMLTableRowElement: typeof HTMLElement;
53
- HTMLTableSectionElement: typeof HTMLElement;
54
- HTMLUnknownElement: typeof HTMLElement;
55
- HTMLFrameElement: typeof HTMLElement;
56
- HTMLFrameSetElement: typeof HTMLElement;
57
- HTMLIFrameElement: typeof HTMLElement;
58
- HTMLEmbedElement: typeof HTMLElement;
59
- HTMLObjectElement: typeof HTMLElement;
60
- HTMLParamElement: typeof HTMLElement;
61
- HTMLVideoElement: typeof HTMLElement;
62
- HTMLAudioElement: typeof HTMLElement;
63
- HTMLTrackElement: typeof HTMLElement;
64
- };
65
- export default _default;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var HTMLElement_1 = __importDefault(require("../nodes/html-element/HTMLElement"));
7
- exports.default = {
8
- HTMLElement: HTMLElement_1.default,
9
- HTMLHeadElement: HTMLElement_1.default,
10
- HTMLTitleElement: HTMLElement_1.default,
11
- HTMLBaseElement: HTMLElement_1.default,
12
- HTMLMetaElement: HTMLElement_1.default,
13
- HTMLBodyElement: HTMLElement_1.default,
14
- HTMLHeadingElement: HTMLElement_1.default,
15
- HTMLParagraphElement: HTMLElement_1.default,
16
- HTMLHRElement: HTMLElement_1.default,
17
- HTMLPreElement: HTMLElement_1.default,
18
- HTMLUListElement: HTMLElement_1.default,
19
- HTMLOListElement: HTMLElement_1.default,
20
- HTMLLIElement: HTMLElement_1.default,
21
- HTMLMenuElement: HTMLElement_1.default,
22
- HTMLDListElement: HTMLElement_1.default,
23
- HTMLDivElement: HTMLElement_1.default,
24
- HTMLAnchorElement: HTMLElement_1.default,
25
- HTMLAreaElement: HTMLElement_1.default,
26
- HTMLBRElement: HTMLElement_1.default,
27
- HTMLButtonElement: HTMLElement_1.default,
28
- HTMLCanvasElement: HTMLElement_1.default,
29
- HTMLDataElement: HTMLElement_1.default,
30
- HTMLDataListElement: HTMLElement_1.default,
31
- HTMLDetailsElement: HTMLElement_1.default,
32
- HTMLDialogElement: HTMLElement_1.default,
33
- HTMLDirectoryElement: HTMLElement_1.default,
34
- HTMLFieldSetElement: HTMLElement_1.default,
35
- HTMLFontElement: HTMLElement_1.default,
36
- HTMLHtmlElement: HTMLElement_1.default,
37
- HTMLLegendElement: HTMLElement_1.default,
38
- HTMLMapElement: HTMLElement_1.default,
39
- HTMLMarqueeElement: HTMLElement_1.default,
40
- HTMLMediaElement: HTMLElement_1.default,
41
- HTMLMeterElement: HTMLElement_1.default,
42
- HTMLModElement: HTMLElement_1.default,
43
- HTMLOptGroupElement: HTMLElement_1.default,
44
- HTMLOptionElement: HTMLElement_1.default,
45
- HTMLOutputElement: HTMLElement_1.default,
46
- HTMLPictureElement: HTMLElement_1.default,
47
- HTMLProgressElement: HTMLElement_1.default,
48
- HTMLQuoteElement: HTMLElement_1.default,
49
- HTMLSelectElement: HTMLElement_1.default,
50
- HTMLSourceElement: HTMLElement_1.default,
51
- HTMLSpanElement: HTMLElement_1.default,
52
- HTMLTableCaptionElement: HTMLElement_1.default,
53
- HTMLTableCellElement: HTMLElement_1.default,
54
- HTMLTableColElement: HTMLElement_1.default,
55
- HTMLTableElement: HTMLElement_1.default,
56
- HTMLTimeElement: HTMLElement_1.default,
57
- HTMLTableRowElement: HTMLElement_1.default,
58
- HTMLTableSectionElement: HTMLElement_1.default,
59
- HTMLUnknownElement: HTMLElement_1.default,
60
- HTMLFrameElement: HTMLElement_1.default,
61
- HTMLFrameSetElement: HTMLElement_1.default,
62
- HTMLIFrameElement: HTMLElement_1.default,
63
- HTMLEmbedElement: HTMLElement_1.default,
64
- HTMLObjectElement: HTMLElement_1.default,
65
- HTMLParamElement: HTMLElement_1.default,
66
- HTMLVideoElement: HTMLElement_1.default,
67
- HTMLAudioElement: HTMLElement_1.default,
68
- HTMLTrackElement: HTMLElement_1.default
69
- };
70
- //# sourceMappingURL=ElementClass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ElementClass.js","sourceRoot":"","sources":["../../src/config/ElementClass.ts"],"names":[],"mappings":";;;;;AAAA,kFAA4D;AAE5D,kBAAe;IACd,WAAW,EAAE,qBAAW;IACxB,eAAe,EAAE,qBAAW;IAC5B,gBAAgB,EAAE,qBAAW;IAC7B,eAAe,EAAE,qBAAW;IAC5B,eAAe,EAAE,qBAAW;IAC5B,eAAe,EAAE,qBAAW;IAC5B,kBAAkB,EAAE,qBAAW;IAC/B,oBAAoB,EAAE,qBAAW;IACjC,aAAa,EAAE,qBAAW;IAC1B,cAAc,EAAE,qBAAW;IAC3B,gBAAgB,EAAE,qBAAW;IAC7B,gBAAgB,EAAE,qBAAW;IAC7B,aAAa,EAAE,qBAAW;IAC1B,eAAe,EAAE,qBAAW;IAC5B,gBAAgB,EAAE,qBAAW;IAC7B,cAAc,EAAE,qBAAW;IAC3B,iBAAiB,EAAE,qBAAW;IAC9B,eAAe,EAAE,qBAAW;IAC5B,aAAa,EAAE,qBAAW;IAC1B,iBAAiB,EAAE,qBAAW;IAC9B,iBAAiB,EAAE,qBAAW;IAC9B,eAAe,EAAE,qBAAW;IAC5B,mBAAmB,EAAE,qBAAW;IAChC,kBAAkB,EAAE,qBAAW;IAC/B,iBAAiB,EAAE,qBAAW;IAC9B,oBAAoB,EAAE,qBAAW;IACjC,mBAAmB,EAAE,qBAAW;IAChC,eAAe,EAAE,qBAAW;IAC5B,eAAe,EAAE,qBAAW;IAC5B,iBAAiB,EAAE,qBAAW;IAC9B,cAAc,EAAE,qBAAW;IAC3B,kBAAkB,EAAE,qBAAW;IAC/B,gBAAgB,EAAE,qBAAW;IAC7B,gBAAgB,EAAE,qBAAW;IAC7B,cAAc,EAAE,qBAAW;IAC3B,mBAAmB,EAAE,qBAAW;IAChC,iBAAiB,EAAE,qBAAW;IAC9B,iBAAiB,EAAE,qBAAW;IAC9B,kBAAkB,EAAE,qBAAW;IAC/B,mBAAmB,EAAE,qBAAW;IAChC,gBAAgB,EAAE,qBAAW;IAC7B,iBAAiB,EAAE,qBAAW;IAC9B,iBAAiB,EAAE,qBAAW;IAC9B,eAAe,EAAE,qBAAW;IAC5B,uBAAuB,EAAE,qBAAW;IACpC,oBAAoB,EAAE,qBAAW;IACjC,mBAAmB,EAAE,qBAAW;IAChC,gBAAgB,EAAE,qBAAW;IAC7B,eAAe,EAAE,qBAAW;IAC5B,mBAAmB,EAAE,qBAAW;IAChC,uBAAuB,EAAE,qBAAW;IACpC,kBAAkB,EAAE,qBAAW;IAC/B,gBAAgB,EAAE,qBAAW;IAC7B,mBAAmB,EAAE,qBAAW;IAChC,iBAAiB,EAAE,qBAAW;IAC9B,gBAAgB,EAAE,qBAAW;IAC7B,iBAAiB,EAAE,qBAAW;IAC9B,gBAAgB,EAAE,qBAAW;IAC7B,gBAAgB,EAAE,qBAAW;IAC7B,gBAAgB,EAAE,qBAAW;IAC7B,gBAAgB,EAAE,qBAAW;CAC7B,CAAC"}
@@ -1,65 +0,0 @@
1
- import HTMLElement from '../nodes/html-element/HTMLElement';
2
-
3
- export default {
4
- HTMLElement: HTMLElement,
5
- HTMLHeadElement: HTMLElement,
6
- HTMLTitleElement: HTMLElement,
7
- HTMLBaseElement: HTMLElement,
8
- HTMLMetaElement: HTMLElement,
9
- HTMLBodyElement: HTMLElement,
10
- HTMLHeadingElement: HTMLElement,
11
- HTMLParagraphElement: HTMLElement,
12
- HTMLHRElement: HTMLElement,
13
- HTMLPreElement: HTMLElement,
14
- HTMLUListElement: HTMLElement,
15
- HTMLOListElement: HTMLElement,
16
- HTMLLIElement: HTMLElement,
17
- HTMLMenuElement: HTMLElement,
18
- HTMLDListElement: HTMLElement,
19
- HTMLDivElement: HTMLElement,
20
- HTMLAnchorElement: HTMLElement,
21
- HTMLAreaElement: HTMLElement,
22
- HTMLBRElement: HTMLElement,
23
- HTMLButtonElement: HTMLElement,
24
- HTMLCanvasElement: HTMLElement,
25
- HTMLDataElement: HTMLElement,
26
- HTMLDataListElement: HTMLElement,
27
- HTMLDetailsElement: HTMLElement,
28
- HTMLDialogElement: HTMLElement,
29
- HTMLDirectoryElement: HTMLElement,
30
- HTMLFieldSetElement: HTMLElement,
31
- HTMLFontElement: HTMLElement,
32
- HTMLHtmlElement: HTMLElement,
33
- HTMLLegendElement: HTMLElement,
34
- HTMLMapElement: HTMLElement,
35
- HTMLMarqueeElement: HTMLElement,
36
- HTMLMediaElement: HTMLElement,
37
- HTMLMeterElement: HTMLElement,
38
- HTMLModElement: HTMLElement,
39
- HTMLOptGroupElement: HTMLElement,
40
- HTMLOptionElement: HTMLElement,
41
- HTMLOutputElement: HTMLElement,
42
- HTMLPictureElement: HTMLElement,
43
- HTMLProgressElement: HTMLElement,
44
- HTMLQuoteElement: HTMLElement,
45
- HTMLSelectElement: HTMLElement,
46
- HTMLSourceElement: HTMLElement,
47
- HTMLSpanElement: HTMLElement,
48
- HTMLTableCaptionElement: HTMLElement,
49
- HTMLTableCellElement: HTMLElement,
50
- HTMLTableColElement: HTMLElement,
51
- HTMLTableElement: HTMLElement,
52
- HTMLTimeElement: HTMLElement,
53
- HTMLTableRowElement: HTMLElement,
54
- HTMLTableSectionElement: HTMLElement,
55
- HTMLUnknownElement: HTMLElement,
56
- HTMLFrameElement: HTMLElement,
57
- HTMLFrameSetElement: HTMLElement,
58
- HTMLIFrameElement: HTMLElement,
59
- HTMLEmbedElement: HTMLElement,
60
- HTMLObjectElement: HTMLElement,
61
- HTMLParamElement: HTMLElement,
62
- HTMLVideoElement: HTMLElement,
63
- HTMLAudioElement: HTMLElement,
64
- HTMLTrackElement: HTMLElement
65
- };