> For the complete documentation index, see [llms.txt](https://anjia1.gitbook.io/web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anjia1.gitbook.io/web/web-api.md).

# Web API 一览表

这部分将梳理浏览器上的所有 API，即 `window` 的全局属性。

以 Chrome 为例，在开发者工具的 Console 选项卡里执行 `Object.getOwnPropertyNames(window)` 共得到了 1020 个属性。

```javascript
// Chrome 98.0.4758.80 (Official Build) (x86_64)
let all = Object.getOwnPropertyNames(window);
console.log('总数', all.length); // 1020
```

我们知道，浏览器的 API 大致分为以下 4 类：

1. JavaScript 固有对象
2. DOM API
3. CSSOM API
4. HTML 相关

接下来，我们就逐类处理下。

## 1. JavaScript 固有对象

这部分由标准规定，是随着 JavaScript 运行时环境的创建而自动创建的对象实例。在任何 JavaScript 代码执行之前，它们就已经被创建好了，类似于基础库的角色。

在 [ECMA262](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-intrinsic-objects) 标准中，可以找到 47 个“顶级”固有对象，过滤的脚本如下：

```javascript
// https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-intrinsic-objects
let IntrinsicObjects = new Set();
document.querySelector('#table-7').querySelectorAll('td:nth-child(2)').forEach(item => {
    let name = item.innerText.split('.')[0];
    if (name) {
        IntrinsicObjects.add(name)
    }
});
console.log(IntrinsicObjects); // 47个
```

再加 3 个和 bigInt 相关的、4 个值属性、3 个内存管理和 5 个 Generator，一共 62 个。转成字符串方便查看，如下：

```javascript
// 47个JS固有对象      https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-intrinsic-objects
// 3个BigInt           https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-bigint-objects
// 4个值属性+3个内存管理  https://tc39.es/ecma262/multipage/global-object.html#sec-value-properties-of-the-global-object
// 5个Generator        https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-generator-objects
const JS_IntrinsicObjects = [
    'globalThis', 'undefined', 'NaN', 'Infinity',  // 值属性（4个）
    'Boolean', 'String', 'Number', 'BigInt', 'Symbol', 'Object',  // 基本对象
    'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'decodeURI', 'encodeURI', 'encodeURIComponent', 'decodeURIComponent', // 函数属性
    'AggregateError', 'FinalizationRegistry', 'WeakRef',  // 内存管理（3个）
    'Array', 'Int8Array', 'Int16Array', 'Int32Array', 'Float32Array', 'Float64Array', 'Uint8Array', 'Uint16Array', 'Uint32Array', 'Uint8ClampedArray', 'BigInt64Array', 'BigUint64Array', // 索引集合
    'ArrayBuffer', 'SharedArrayBuffer', 'DataView', // 二进制操作
    'Map', 'Set', 'WeakMap', 'WeakSet',  // 键集合
    'Date', 'RegExp', 'Promise', 'Proxy', 'Function', // 基础功能和数据结构
    'Math', 'JSON', 'Reflect', 'Atomics', // 命名空间
    'Error', 'SyntaxError', 'TypeError', 'URIError', 'EvalError', 'RangeError', 'ReferenceError',
    'Generator', 'GeneratorFunction', 'AsyncFunction', 'AsyncGenerator', 'AsyncGeneratorFunction' // Generator（5个）
];
```

<table data-header-hidden><thead><tr><th width="167.33333333333331">分类</th><th width="191.68977673325503">固有对象</th><th>固有对象</th></tr></thead><tbody><tr><td></td><td>值属性（2个）</td><td><code>globalThis</code><br><code>Infinity</code></td></tr><tr><td>数据类型</td><td>原始值（2个）</td><td><code>undefined</code><br><code>NaN</code></td></tr><tr><td></td><td>原始类型（5个）</td><td><code>Boolean</code><br><code>String</code><br><code>Number</code><br><code>BigInt</code><br><code>Symbol</code></td></tr><tr><td></td><td>对象类型（1个）</td><td><code>Object</code></td></tr><tr><td>最常用</td><td>基础功能（6个）</td><td><code>Array</code> 数组（索引集合）<br><code>Date</code><br><code>RegExp</code><br><code>Promise</code><br><code>Proxy</code><br><code>Function</code></td></tr><tr><td></td><td>键集合（4个）</td><td><code>Map</code>, <code>WeakMap</code><br><code>Set</code>, <code>WeakSet</code></td></tr><tr><td></td><td>函数属性（9个）</td><td><code>eval()</code><br><code>isFinite()</code><br><code>isNaN()</code><br><code>parseFloat()</code><br><code>parseInt()</code><br><code>decodeURI()</code><br><code>encodeURI()</code><br><code>encodeURIComponent()</code><br><code>decodeURIComponent()</code></td></tr><tr><td></td><td>命名空间（4个）</td><td><code>Math</code><br><code>JSON</code><br><code>Reflect</code><br><code>Atomics</code></td></tr><tr><td>其它</td><td>二进制（3个）</td><td><code>ArrayBuffer</code><br><code>SharedArrayBuffer</code><br><code>DataView</code></td></tr><tr><td></td><td>类型数组（11个）</td><td><code>Int8Array</code><br><code>Int16Array</code><br><code>Int32Array</code><br><code>Float32Array</code><br><code>Float64Array</code><br><code>Uint8Array</code><br><code>Uint16Array</code><br><code>Uint32Array</code><br><code>Uint8ClampedArray</code><br><code>BigInt64Array</code><br><code>BigUint64Array</code></td></tr><tr><td></td><td>Error 类型（7个）</td><td><code>Error</code><br><code>SyntaxError</code><br><code>TypeError</code><br><code>ReferenceError</code><br><code>URIError</code><br><code>EvalError</code><br><code>RangeError</code></td></tr><tr><td>更多</td><td>内存管理（3个）</td><td><code>AggregateError</code><br><code>FinalizationRegistry</code><br><code>WeakRef</code></td></tr><tr><td></td><td>Generator（5个）</td><td><code>Generator</code><br><code>GeneratorFunction</code><br><code>AsyncFunction</code><br><code>AsyncGenerator</code><br><code>AsyncGeneratorFunction</code></td></tr></tbody></table>

## 2. DOM API

[DOM 标准](https://dom.spec.whatwg.org/)主要定义了：

* 事件：可以用代码过滤出来，即判断其是否为 `Event` 的实例
* 节点：也可以用代码过滤，即判断其是否为 `Node` 的实例
* DOM Range 及其它

下面是与 DOM 标准相关的 window 全局属性（含部分事件和节点）。

```javascript
const DOM = [
    'Event', 'CustomEvent', 'EventTarget', 'AbortController', 'AbortSignal', 'NonElementParentNode', 'DocumentOrShadowRoot', 'ParentNode', 'NonDocumentTypeChildNode', 'ChildNode', 'Slottable', 'NodeList', 'HTMLCollection', 'MutationObserver', 'MutationRecord', 'Node', 'Document', 'XMLDocument', 'DOMImplementation', 'DocumentType', 'DocumentFragment', 'ShadowRoot', 'Element', 'NamedNodeMap', 'Attr', 'CharacterData', 'Text', 'CDATASection', 'ProcessingInstruction', 'Comment', 'AbstractRange', 'StaticRange', 'Range', 'NodeIterator', 'TreeWalker', 'DOMTokenList', 'XPathResult', 'XPathExpression', 'XPathEvaluatorBase', 'XPathEvaluator', 'XSLTProcessor', // [data-dfn-type='interface']
    'EventListener', 'MutationCallback', 'NodeFilter', 'XPathNSResolver', // [data-dfn-type='callback']
    'addEventListener', 'removeEventListener', 'dispatchEvent' // [data-dfn-type='method']
];
```

## 3. CSSOM API

这部分主要对应 2 个标准：

1. [CSS Object Model (CSSOM)](https://www.w3.org/TR/cssom-1/)：和 CSS 的语言特性一一对应
2. [CSSOM View Module](http://www.w3.org/TR/cssom-view-1/)：是浏览器提供的关于操作页面渲染后视图的属性和方法

```javascript
const CSSOM = [
    'MediaList', 'StyleSheet', 'CSSStyleSheet', 'StyleSheetList', 'LinkStyle', 'CSSRuleList', 'CSSRule', 'CSSStyleRule', 'CSSImportRule', 'CSSGroupingRule', 'CSSPageRule', 'CSSMarginRule', 'CSSNamespaceRule', 'CSSStyleDeclaration', 'ElementCSSInlineStyle', 'getComputedStyle'
];

const CSSOM_View = [
    'matchMedia', 'Screen', 'MediaQueryList', 'MediaQueryListEvent', 'CaretPosition', 'GeometryUtils',
    'moveTo', 'moveBy', 'resizeTo', 'resizeBy', // browsing context
    'innerWidth', 'innerHeight', // viewport
    'scrollX', 'pageXOffset', 'scrollY', 'pageYOffset', 'scroll', 'scrollTo', 'scrollBy', // viewport scrolling 
    'screenX', 'screenLeft', 'screenY', 'screenTop', 'outerWidth', 'outerHeight', 'devicePixelRatio' // client
];
```

此外，还有很多名字里包含“CSS”字符串的属性/接口，这里就不一一列出来了（详见[附录](#5.-whatwg-de-qi-ta-biao-zhun)），因为代码里可以直接用 string pattern 过滤掉。

## 4. HTML 相关

这部分主要分为：

1. [7.3 The Window object](https://html.spec.whatwg.org/multipage/window-object.html#the-window-object) 定义了 window 对象上的全局属性，详见下方 `HTMLSpec_Window` 变量里的内容
2. [4.1 The document element](https://html.spec.whatwg.org/multipage/semantics.html#the-root-element) 定义了元素对应的 DOM 接口，也是全局的（可以用代码过滤，同 Node节点）
3. 其它接口，详见下方 `HTMLSpec_Others` 变量里的内容

```javascript
// https://html.spec.whatwg.org/multipage/window-object.html#the-window-object
const HTMLSpec_Window = [
    'window', 'self', 'document',
    'name', 'location', 'history', 'customElements', // the current browsing context
    'locationbar', 'menubar', ' personalbar', 'scrollbars', 'statusbar', 'toolbar', 'personalbar',
    'status', 'close', 'closed', 'stop', 'focus', 'blur',
    'frames', 'length', 'top', 'opener', 'parent', 'frameElement', 'open', // other browsing contexts
    'navigator', 'clientInformation', 'originAgentCluster', // the user agent
    'alert', 'confirm', 'prompt', 'print', 'postMessage',  // user prompts
];
const HTMLSpec_Others = [
    'Storage', 'WindowSessionStorage', 'WindowLocalStorage', 'StorageEvent',
    'sessionStorage', 'localStorage',
    'atob', 'btoa', 'createImageBitmap',
    'crossOriginIsolated', 'isSecureContext', 'origin', 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'queueMicrotask', 'structuredClone', // 'For web developers (non-normative)'
    'cancelAnimationFrame', 'requestAnimationFrame',
    'HTMLAllCollection', 'HTMLFormControlsCollection', 'RadioNodeList', 'HTMLOptionsCollection',
    'DOMParser', 'DOMException', 'DOMStringList', 'DOMStringMap', 'HTMLHyperlinkElementUtils',
    'MediaError', 'AudioTrackList', 'AudioTrack', 'VideoTrackList',
    'VideoTrack', 'TextTrackList', 'TextTrack', 'TextTrackCueList', 'TextTrackCue', 'TimeRanges', 'TrackEvent', 'ValidityState', 'SubmitEvent', 'FormDataEvent',
    'CanvasRenderingContext2D', 'CanvasState', 'CanvasTransform', 'CanvasCompositing', 'CanvasImageSmoothing', 'CanvasFillStrokeStyles', 'CanvasShadowStyles', 'CanvasFilters', 'CanvasFilter', 'CanvasRect', 'CanvasDrawPath', 'CanvasUserInterface', 'CanvasText', 'CanvasDrawImage', 'CanvasImageData', 'CanvasPathDrawingStyles', 'CanvasTextDrawingStyles', 'CanvasPath', 'CanvasGradient', 'CanvasPattern', 'TextMetrics', 'ImageData', 'Path2D', 'ImageBitmapRenderingContext', 'OffscreenCanvas',
    'OffscreenCanvasRenderingContext2D', 'CustomElementRegistry', 'ElementInternals', 'ElementContentEditable',
    'DataTransfer', 'DataTransferItemList', 'DataTransferItem', 'DragEvent', 'Window', 'BarProp', 'History', 'Location',
    'PopStateEvent', 'HashChangeEvent', 'PageTransitionEvent', 'BeforeUnloadEvent', 'ErrorEvent', 'PromiseRejectionEvent', 'GlobalEventHandlers', 'WindowEventHandlers', 'DocumentAndElementEventHandlers', 'WindowOrWorkerGlobalScope', 'DOMParser', 'Navigator', 'NavigatorID', 'NavigatorLanguage', 'NavigatorOnLine', 'NavigatorContentUtils', 'NavigatorCookies', 'ImageBitmap', 'AnimationFrameProvider', 'MessageEvent', 'EventSource', 'WebSocket', 'CloseEvent', 'MessageChannel', 'MessagePort', 'BroadcastChannel', 'WorkerGlobalScope', 'DedicatedWorkerGlobalScope', 'SharedWorkerGlobalScope', 'AbstractWorker', 'Worker', 'SharedWorker', 'NavigatorConcurrentHardware', 'WorkerNavigator', 'WorkerLocation', 'FakeWorkletGlobalScope', 'WorkletGlobalScope', 'Worklet', 'External'
];
```

## 5. WHATWG 的其它标准

```javascript
const WHATWG_Others = [
    'console', // https://console.spec.whatwg.org
    'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload', 'XMLHttpRequest', 'FormData', 'FormDataEntryValue', 'ProgressEvent', // https://xhr.spec.whatwg.org
    'fetch', 'Headers', 'Body', 'Request', 'Response', // https://fetch.spec.whatwg.org/
    'URL', 'URLSearchParams', // https://url.spec.whatwg.org
    'NavigatorStorage', 'StorageManager',  // https://storage.spec.whatwg.org/
    'Notification', 'NotificationEvent', // https://notifications.spec.whatwg.org/#api
    'WritableStream', 'WritableStreamDefaultWriter', 'WritableStreamDefaultController', // https://streams.spec.whatwg.org
    'TextDecoder', 'TextEncoder', 'TextDecoderStream', 'TextEncoderStream',  // https://encoding.spec.whatwg.org/#dom-textencoder
    'ReadableStream', 'ReadableStreamDefaultReader', 'ReadableStreamBYOBReader', 'ReadableStreamDefaultController', 'ReadableByteStreamController', 'ReadableStreamBYOBRequest', 'WritableStream', 'WritableStreamDefaultWriter', 'WritableStreamDefaultController', 'TransformStream', 'TransformStreamDefaultController', 'ByteLengthQueuingStrategy', 'CountQueuingStrategy' // https://streams.spec.whatwg.org/#blqs-class
];
```

## 6. ECMA402

```javascript
const ECMA402 = [
    'Intl'  // 国际化, https://tc39.es/ecma402/#intl-object
];
```

## 7. W3C 的其它标准

```javascript
// 内容较多，为了可读性就不全贴了
// 详见源码 https://github.com/anjia/blog/blob/master/src/browserAPIs.html
const W3C_Others = [
    'StylePropertyMap', 'StylePropertyMapReadOnly', // W3C, CSS Typed OM Level 1
    'FontFace', 'FontFaceSet', 'FontFaceSetLoadEvent', // W3C, CSS Font Loading 3
    'AnimationEvent', // W3C, CSS Animations
    'TransitionEvent', // W3C, CSS Transitions
    'indexedDB', // W3C, Indexed Database API 
    'crypto', // W3C, Web Cryptography API
    'caches',  // W3C, Service Workers
    'performance',  // W3C, Navigation Timing
    'Selection',   // W3C, ED, Selection API
    ...
    ...
    'DOMRectList', 'DOMRect', 'DOMQuad', 'DOMRectReadOnly', 'DOMPointReadOnly', 'DOMPoint', 'DOMMatrixReadOnly', 'DOMMatrix' // W3C, Geometry Interfaces Module Level 1
];
```

## 8. 其它组织

```javascript
const Other_Orgs = [
    'WebAssembly',  // https://webassembly.github.io/spec/js-api/#webassembly-namespace
    'InputDeviceCapabilities', //  https://wicg.github.io/input-device-capabilities
    'XRCompositionLayer', 'XRProjectionLayer', 'XRQuadLayer', 'XRCylinderLayer', 'XREquirectLayer', 'XRCubeLayer', 'XRSubImage', 'XRWebGLSubImage', 'XRWebGLBinding', 'XRMediaBinding', 'XRLayerEvent', // https://immersive-web.github.io/layers/
    'XRLightEstimate', 'XRLightProbe',  // https://immersive-web.github.io/lighting-estimation/
    'XRHitTestSource', 'XRTransientInputHitTestSource', 'XRHitTestResult', 'XRTransientInputHitTestResult', 'XRRay', // https://immersive-web.github.io/hit-test/, WebXR Hit Test Module
    'SVGElement', 'SVGBoundingBoxOptions', 'SVGGraphicsElement', 'SVGGeometryElement', 'SVGNumber', 'SVGLength', 'SVGAngle', 'SVGNumberList', 'SVGLengthList', 'SVGStringList', 'SVGAnimatedBoolean', 'SVGAnimatedEnumeration', 'SVGAnimatedInteger', 'SVGAnimatedNumber', 'SVGAnimatedLength', 'SVGAnimatedAngle', 'SVGAnimatedString', 'SVGAnimatedRect', 'SVGAnimatedNumberList', 'SVGAnimatedLengthList', 'SVGUnitTypes', 'SVGTests', 'SVGFitToViewBox', 'SVGURIReference', // https://svgwg.org/svg2-draft/types.html
    'SVGTransform', 'SVGTransformList', 'SVGAnimatedTransformList', 'SVGPreserveAspectRatio', 'SVGAnimatedPreserveAspectRatio', // https://svgwg.org/svg2-draft/coords.html
    'SVGRectElement', 'SVGCircleElement', 'SVGEllipseElement', 'SVGLineElement', 'SVGAnimatedPoints', 'SVGPointList', 'SVGPolylineElement', 'SVGPolygonElement', // https://svgwg.org/svg2-draft/shapes.html
    'MIDIInputMap', 'MIDIOutputMap', 'MIDIAccess', 'MIDIPort', 'MIDIInput', 'MIDIOutput', 'MIDIMessageEvent', 'MIDIConnectionEvent', // Web MIDI API, https://webaudio.github.io/web-midi-api/#midiaccess-interface
    'WebGLQuery', 'WebGLSampler', 'WebGLSync', 'WebGLTransformFeedback', 'WebGLVertexArrayObject', 'WebGL2RenderingContextBase', 'WebGL2RenderingContextOverloads', 'WebGL2RenderingContext', 'WebGLObject', 'WebGLBuffer', 'WebGLFramebuffer', 'WebGLProgram', 'WebGLRenderbuffer', 'WebGLShader', 'WebGLTexture', 'WebGLUniformLocation', 'WebGLActiveInfo', 'WebGLShaderPrecisionFormat', 'WebGLRenderingContextBase', 'WebGLRenderingContext', 'WebGLContextEvent' // WebGL
];
```

过滤完以上提到的所有内容，还剩 41 个属性，它们有些是已经废弃/过时了的，有些是尚未标准化的，具体内容详见[源码](https://github.com/anjia/blog/blob/master/src/browserAPIs.html)，代码的运行结果如下图所示。

![browserAPIs](https://user-images.githubusercontent.com/7055639/154211361-2498b421-a9b7-4fcd-9ff6-e101f7709321.png)

## 9. 总结

这部分介绍并梳理了浏览器的所有 API 及其对应标准，旨在对其有个概况性的认识。

1. [JavaScript](https://tc39.es/ecma262) 固有对象（62个）
2. [DOM API](https://dom.spec.whatwg.org/)：节点、事件、Range 等
3. CSSOM：[CSSOM](https://www.w3.org/TR/cssom-1/)、[CSSOM View](http://www.w3.org/TR/cssom-view-1/)
4. [HTML](https://html.spec.whatwg.org/)：全局属性、元素及事件等
5. 其它
   * WHATWG 的其它标准：console, fetch, xhr, url, storage 等
   * [ECMA402 国际化](https://tc39.es/ecma402/#intl-object)
   * [W3C 的其它标准](https://www.w3.org/tr)

> 代码详见：<https://github.com/anjia/blog/blob/master/src/browserAPIs.html>

### 9.1 主要标准

1. <https://tc39.es/ecma262/>
2. <https://dom.spec.whatwg.org/>
3. <https://html.spec.whatwg.org/>
4. <https://www.w3.org/TR/cssom-1/>
5. <http://www.w3.org/TR/cssom-view-1/>
6. <https://www.w3.org/TR/>

### 9.2 扩展阅读

1. <https://developer.mozilla.org/en-US/docs/Web/API>
2. <https://developer.mozilla.org/en-US/docs/Web/API/Window>

### 9.3 附录

```javascript
// Node 159
// Event 75, on 110
// CSS 46
// webkit 13, Error 15
let pattern = {
    "Node": ["Option","Image","Audio","XMLDocument","Text","ShadowRoot","SVGViewElement","SVGUseElement","SVGTitleElement","SVGTextPositioningElement","SVGTextPathElement","SVGTextElement","SVGTextContentElement","SVGTSpanElement","SVGSymbolElement","SVGSwitchElement","SVGStyleElement","SVGStopElement","SVGSetElement","SVGScriptElement","SVGSVGElement","SVGRectElement","SVGRadialGradientElement","SVGPolylineElement","SVGPolygonElement","SVGPatternElement","SVGPathElement","SVGMetadataElement","SVGMaskElement","SVGMarkerElement","SVGMPathElement","SVGLinearGradientElement","SVGLineElement","SVGImageElement","SVGGraphicsElement","SVGGradientElement","SVGGeometryElement","SVGGElement","SVGForeignObjectElement","SVGFilterElement","SVGFETurbulenceElement","SVGFETileElement","SVGFESpotLightElement","SVGFESpecularLightingElement","SVGFEPointLightElement","SVGFEOffsetElement","SVGFEMorphologyElement","SVGFEMergeNodeElement","SVGFEMergeElement","SVGFEImageElement","SVGFEGaussianBlurElement","SVGFEFuncRElement","SVGFEFuncGElement","SVGFEFuncBElement","SVGFEFuncAElement","SVGFEFloodElement","SVGFEDropShadowElement","SVGFEDistantLightElement","SVGFEDisplacementMapElement","SVGFEDiffuseLightingElement","SVGFEConvolveMatrixElement","SVGFECompositeElement","SVGFEComponentTransferElement","SVGFEColorMatrixElement","SVGFEBlendElement","SVGEllipseElement","SVGElement","SVGDescElement","SVGDefsElement","SVGComponentTransferFunctionElement","SVGClipPathElement","SVGCircleElement","SVGAnimationElement","SVGAnimateTransformElement","SVGAnimateMotionElement","SVGAnimateElement","SVGAElement","ProcessingInstruction","Node","HTMLVideoElement","HTMLUnknownElement","HTMLUListElement","HTMLTrackElement","HTMLTitleElement","HTMLTimeElement","HTMLTextAreaElement","HTMLTemplateElement","HTMLTableSectionElement","HTMLTableRowElement","HTMLTableElement","HTMLTableColElement","HTMLTableCellElement","HTMLTableCaptionElement","HTMLStyleElement","HTMLSpanElement","HTMLSourceElement","HTMLSlotElement","HTMLSelectElement","HTMLScriptElement","HTMLQuoteElement","HTMLProgressElement","HTMLPreElement","HTMLPictureElement","HTMLParamElement","HTMLParagraphElement","HTMLOutputElement","HTMLOptionElement","HTMLOptGroupElement","HTMLObjectElement","HTMLOListElement","HTMLModElement","HTMLMeterElement","HTMLMetaElement","HTMLMenuElement","HTMLMediaElement","HTMLMarqueeElement","HTMLMapElement","HTMLLinkElement","HTMLLegendElement","HTMLLabelElement","HTMLLIElement","HTMLInputElement","HTMLImageElement","HTMLIFrameElement","HTMLHtmlElement","HTMLHeadingElement","HTMLHeadElement","HTMLHRElement","HTMLFrameSetElement","HTMLFrameElement","HTMLFormElement","HTMLFontElement","HTMLFieldSetElement","HTMLEmbedElement","HTMLElement","HTMLDocument","HTMLDivElement","HTMLDirectoryElement","HTMLDialogElement","HTMLDetailsElement","HTMLDataListElement","HTMLDataElement","HTMLDListElement","HTMLCanvasElement","HTMLButtonElement","HTMLBodyElement","HTMLBaseElement","HTMLBRElement","HTMLAudioElement","HTMLAreaElement","HTMLAnchorElement","Element","DocumentType","DocumentFragment","Document","Comment","CharacterData","CDATASection","Attr"],
    "Event": ["WheelEvent","WebGLContextEvent","UIEvent","TransitionEvent","TrackEvent","TouchEvent","TextEvent","SubmitEvent","StorageEvent","SecurityPolicyViolationEvent","RTCTrackEvent","RTCPeerConnectionIceEvent","RTCPeerConnectionIceErrorEvent","RTCErrorEvent","RTCDataChannelEvent","RTCDTMFToneChangeEvent","PromiseRejectionEvent","ProgressEvent","PopStateEvent","PointerEvent","PageTransitionEvent","OfflineAudioCompletionEvent","MutationEvent","MouseEvent","MessageEvent","MediaStreamTrackEvent","MediaStreamEvent","MediaQueryListEvent","MediaEncryptedEvent","KeyboardEvent","InputEvent","IDBVersionChangeEvent","HashChangeEvent","GamepadEvent","FormDataEvent","FontFaceSetLoadEvent","FocusEvent","Event","ErrorEvent","DragEvent","CustomEvent","CompositionEvent","CloseEvent","ClipboardEvent","BlobEvent","BeforeUnloadEvent","BeforeInstallPromptEvent","AudioProcessingEvent","AnimationEvent","CookieChangeEvent","DeviceMotionEvent","DeviceOrientationEvent","MIDIConnectionEvent","MIDIMessageEvent","MediaKeyMessageEvent","SensorErrorEvent","HIDConnectionEvent","HIDInputReportEvent","PaymentMethodChangeEvent","PresentationConnectionAvailableEvent","PresentationConnectionCloseEvent","USBConnectionEvent","XRInputSourceEvent","XRInputSourcesChangeEvent","XRReferenceSpaceEvent","XRSessionEvent","AnimationPlaybackEvent","PaymentRequestUpdateEvent","PictureInPictureEvent","TaskPriorityChangeEvent","SpeechSynthesisErrorEvent","SpeechSynthesisEvent","VirtualKeyboardGeometryChangeEvent","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent"],
    "on": ["onsearch","onappinstalled","onbeforeinstallprompt","onbeforexrselect","onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkittransitionend","onwheel","onauxclick","ongotpointercapture","onlostpointercapture","onpointerdown","onpointermove","onpointerup","onpointercancel","onpointerover","onpointerout","onpointerenter","onpointerleave","onselectstart","onselectionchange","onanimationend","onanimationiteration","onanimationstart","ontransitionrun","ontransitionstart","ontransitionend","ontransitioncancel","onafterprint","onbeforeprint","onbeforeunload","onhashchange","onlanguagechange","onmessage","onmessageerror","onoffline","ononline","onpagehide","onpageshow","onpopstate","onrejectionhandled","onstorage","onunhandledrejection","onunload","ondevicemotion","ondeviceorientation","ondeviceorientationabsolute","onpointerrawupdate"],
    "CSS": ["CSSVariableReferenceValue","CSSUnparsedValue","CSSUnitValue","CSSTranslate","CSSTransformValue","CSSTransformComponent","CSSSupportsRule","CSSStyleValue","CSSStyleSheet","CSSStyleRule","CSSStyleDeclaration","CSSSkewY","CSSSkewX","CSSSkew","CSSScale","CSSRuleList","CSSRule","CSSRotate","CSSPropertyRule","CSSPositionValue","CSSPerspective","CSSPageRule","CSSNumericValue","CSSNumericArray","CSSNamespaceRule","CSSMediaRule","CSSMatrixComponent","CSSMathValue","CSSMathSum","CSSMathProduct","CSSMathNegate","CSSMathMin","CSSMathMax","CSSMathInvert","CSSKeywordValue","CSSKeyframesRule","CSSKeyframeRule","CSSImportRule","CSSImageValue","CSSGroupingRule","CSSFontFaceRule","CSSCounterStyleRule","CSSConditionRule","CSS","CSSAnimation","CSSTransition"],
    "webkit": ["webkitURL","webkitRTCPeerConnection","webkitMediaStream","WebKitMutationObserver","WebKitCSSMatrix","webkitStorageInfo","webkitCancelAnimationFrame","webkitRequestAnimationFrame","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitRequestFileSystem","webkitResolveLocalFileSystemURL"],
    "Error": ["Error","AggregateError","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","RTCError","OverconstrainedError","MediaError","GeolocationPositionError","DOMError","reportError","WebTransportError"],
};
```
