支持的 DOM API
DOM API
跳转到“DOM API”Web Worker 执行在与当前 window 不同的另一个全局上下文中,DOM 操作的 API 都需要在 worker 内部实现,当前支持以下列表的 API:
| API | 是否支持 | 备注 |
|---|---|---|
| Attr.name | ✔️ | - |
| Attr.namespaceURI | ✔️ | - |
| Attr.value | ✔️ | - |
| CDATASection | ✔️ | 参考:Text |
| CharacterData.data | ✔️ | - |
| CharacterData.length | ✔️ | - |
| ChildNode.remove() | ✔️ | 实现在 Node 层级 |
| ChildNode.replaceWith() | ✔️ | 实现在 Node 层级 |
| Comment | ✔️ | 参考:CharacterData 和 Node |
| CSSStyleDeclaration.cssText | ✔️ | - |
| CSSStyleDeclaration.getPropertyValue() | ✔️ | - |
| CSSStyleDeclaration.removeProperty() | ✔️ | - |
| CSSStyleDeclaration.setProperty() | ✔️ | - |
| Document.body | ✔️ | - |
| Document.createComment() | ✔️ | - |
| Document.createDocumentFragment() | ✔️ | - |
| Document.createElement() | ✔️ | - |
| Document.createElementNS() | ✔️ | - |
| Document.createEvent() | ✔️ | - |
| Document.createTextNode() | ✔️ | - |
| Document.defaultView | ✔️ | - |
| Document.documentElement | ✔️ | - |
| document.getElementById(String id) | ✔️ | - |
| Document.getElementsByClassName() | ✔️ | - |
| document.getElementsByName() | ✔️ | - |
| Document.getElementsByTagName() | ✔️ | - |
| document.querySelector() | ✔️ | - |
| document.querySelectorAll() | ✔️ | - |
| DocumentFragment.getElementById() | ✔️ | - |
| DocumentFragment.querySelector() | ✔️ | 部分支持 |
| DocumentFragment.querySelectorAll() | ✔️ | 部分支持 |
| DOMImplementation.createDocument() | ✔️ | - |
| DOMSTokenList.length | ✔️ | - |
| DOMTokenList.add() | ✔️ | - |
| DOMTokenList.contains() | ✔️ | - |
| DOMTokenList.item() | ✔️ | - |
| DOMTokenList.remove() | ✔️ | - |
| DOMTokenList.replace() | ✔️ | - |
| DOMTokenList.toggle() | ✔️ | - |
| DOMTokenList.value | ✔️ | - |
| Element.attributes | ✔️ | - |
| Element.classList | ✔️ | - |
| Element.className | ✔️ | - |
| Element.getAttribute() | ✔️ | - |
| Element.getAttributeNS() | ✔️ | - |
| Element.getElementsByClassName() | ✔️ | - |
| Element.getElementsByTagName() | ✔️ | - |
| Element.hasAttribute() | ✔️ | - |
| Element.hasAttributeNS() | ✔️ | - |
| Element.hasAttributes() | ✔️ | - |
| Element.id | ✔️ | - |
| Element.innerHTML | ✔️ | 部分支持 |
| Element.localName | ✔️ | - |
| Element.namespaceURI | ✔️ | - |
| Element.outerHTML | ✔️ | - |
| Element.querySelector() | ✔️ | 部分支持 |
| Element.querySelectorAll() | ✔️ | 部分支持 |
| Element.removeAttribute() | ✔️ | - |
| Element.removeAttributeNS() | ✔️ | - |
| Element.scrollIntoView() | ✔️ | 不支持带参数 |
| Element.setAttribute() | ✔️ | - |
| Element.setAttributeNS() | ✔️ | - |
| Event.bubbles | ✔️ | - |
| Event.cancelable | ✔️ | - |
| Event.cancelBubble | ✔️ | - |
| Event.currentTarget | ✔️ | - |
| Event.eventPhase | ✔️ | - |
| Event.isTrusted | ✔️ | - |
| Event.returnValue | ✔️ | - |
| Event.target | ✔️ | - |
| Event.timeStamp | ✔️ | - |
| Event.type | ✔️ | - |
| EventTarget.addEventListener() | ✔️ | - |
| EventTarget.removeEventListener() | ✔️ | - |
| HTMLAnchorElement.hreflang | ✔️ | - |
| HTMLAnchorElement.media | ✔️ | - |
| HTMLAnchorElement.rel | ✔️ | - |
| HTMLAnchorElement.relList | ✔️ | - |
| HTMLAnchorElement.target | ✔️ | - |
| HTMLAnchorElement.text | ✔️ | - |
| HTMLAnchorElement.type | ✔️ | - |
| HTMLButtonElement.autofocus | ✔️ | - |
| HTMLButtonElement.disabled | ✔️ | - |
| HTMLButtonElement.formAction | ✔️ | - |
| HTMLButtonElement.formEnctype | ✔️ | - |
| HTMLButtonElement.formMethod | ✔️ | - |
| HTMLButtonElement.formTarget | ✔️ | - |
| HTMLButtonElement.name | ✔️ | - |
| HTMLButtonElement.type | ✔️ | - |
| HTMLButtonElement.value | ✔️ | - |
| HTMLDataElement.value | ✔️ | - |
| HTMLDataListElement.options | ✔️ | - |
| HTMLElement.accessKey | ✔️ | - |
| HTMLElement.accessKeyLabel | ✔️ | - |
| HTMLElement.async | ✔️ | - |
| HTMLElement.charset | ✔️ | - |
| HTMLElement.click() | ✔️ | - |
| HTMLElement.contentEditable | ✔️ | - |
| HTMLElement.crossOrigin | ✔️ | - |
| HTMLElement.defaultSelected | ✔️ | - |
| HTMLElement.defer | ✔️ | - |
| HTMLElement.dir | ✔️ | - |
| HTMLElement.disabled | ✔️ | - |
| HTMLElement.draggable | ✔️ | - |
| HTMLElement.form | ✔️ | - |
| HTMLElement.hidden | ✔️ | - |
| HTMLElement.index | ✔️ | - |
| HTMLElement.label | ✔️ | - |
| HTMLElement.lang | ✔️ | - |
| HTMLElement.noModule | ✔️ | - |
| HTMLElement.selected | ✔️ | - |
| HTMLElement.spellcheck | ✔️ | - |
| HTMLElement.src | ✔️ | - |
| HTMLElement.text | ✔️ | - |
| HTMLElement.translate | ✔️ | - |
| HTMLElement.type | ✔️ | - |
| HTMLElement.value | ✔️ | - |
| HTMLEmbedElement.height | ✔️ | - |
| HTMLEmbedElement.src | ✔️ | - |
| HTMLEmbedElement.type | ✔️ | - |
| HTMLEmbedElement.width | ✔️ | - |
| HTMLFieldSetElement.disabled | ✔️ | - |
| HTMLFieldSetElement.name | ✔️ | - |
| HTMLFormElement.acceptCharset | ✔️ | - |
| HTMLFormElement.action | ✔️ | - |
| HTMLFormElement.autocapitalize | ✔️ | - |
| HTMLFormElement.autocomplete | ✔️ | - |
| HTMLFormElement.elements | ✔️ | - |
| HTMLFormElement.length | ✔️ | - |
| HTMLFormElement.encoding or HTMLFormElement.enctype | ✔️ | - |
| HTMLFormElement.method | ✔️ | - |
| HTMLFormElement.name | ✔️ | - |
| HTMLFormElement.target | ✔️ | - |
| HTMLHyperlinkElementUtils.href | ✔️ | - |
| HTMLIFrameElement.allow | ✔️ | - |
| HTMLIFrameElement.allowfullscreen | ✔️ | - |
| HTMLIFrameElement.csp | ✔️ | - |
| HTMLIFrameElement.height | ✔️ | - |
| HTMLIFrameElement.name | ✔️ | - |
| HTMLIFrameElement.referrerPolicy | ✔️ | - |
| HTMLIFrameElement.src | ✔️ | - |
| HTMLIFrameElement.srcdoc | ✔️ | - |
| HTMLIFrameElement.width | ✔️ | - |
| HTMLImageElement.alt | ✔️ | - |
| HTMLImageElement.crossOrigin | ✔️ | - |
| HTMLImageElement.height | ✔️ | - |
| HTMLImageElement.isMap | ✔️ | - |
| HTMLImageElement.sizes | ✔️ | - |
| HTMLImageElement.src | ✔️ | - |
| HTMLImageElement.srcset | ✔️ | - |
| HTMLImageElement.useMap | ✔️ | - |
| HTMLImageElement.width | ✔️ | - |
| HTMLInputElement.accept | ✔️ | - |
| HTMLInputElement.accessKey | ✔️ | - |
| HTMLInputElement.alt | ✔️ | - |
| HTMLInputElement.autocapitalize | ✔️ | - |
| HTMLInputElement.autocomplete | ✔️ | - |
| HTMLInputElement.autofocus | ✔️ | - |
| HTMLInputElement.blur() | ✔️ | - |
| HTMLInputElement.defaultChecked | ✔️ | - |
| HTMLInputElement.defaultValue | ✔️ | - |
| HTMLInputElement.dirName | ✔️ | - |
| HTMLInputElement.disabled | ✔️ | - |
| HTMLInputElement.focus() | ✔️ | - |
| HTMLInputElement.form | ✔️ | - |
| HTMLInputElement.formAction | ✔️ | - |
| HTMLInputElement.formEncType | ✔️ | - |
| HTMLInputElement.formMethod | ✔️ | - |
| HTMLInputElement.formTarget | ✔️ | - |
| HTMLInputElement.height | ✔️ | - |
| HTMLInputElement.labels | ✔️ | - |
| HTMLInputElement.max | ✔️ | - |
| HTMLInputElement.maxLength | ✔️ | - |
| HTMLInputElement.min | ✔️ | - |
| HTMLInputElement.multiple | ✔️ | - |
| HTMLInputElement.name | ✔️ | - |
| HTMLInputElement.pattern | ✔️ | - |
| HTMLInputElement.placeholder | ✔️ | - |
| HTMLInputElement.required | ✔️ | - |
| HTMLInputElement.select() | ✔️ | - |
| HTMLInputElement.size | ✔️ | - |
| HTMLInputElement.src | ✔️ | - |
| HTMLInputElement.step | ✔️ | - |
| HTMLInputElement.type | ✔️ | - |
| HTMLInputElement.value | ✔️ | - |
| HTMLInputElement.valueAsDate | ✔️ | - |
| HTMLInputElement.valueAsNumber | ✔️ | - |
| HTMLInputElement.width | ✔️ | - |
| HTMLLabelElement.control | ✔️ | - |
| HTMLLabelElement.form | ✔️ | - |
| HTMLLabelElement.htmlFor | ✔️ | - |
| HTMLLinkElement.as | ✔️ | - |
| HTMLLinkElement.crossOrigin | ✔️ | - |
| HTMLLinkElement.disabled | ✔️ | - |
| HTMLLinkElement.href | ✔️ | - |
| HTMLLinkElement.hreflang | ✔️ | - |
| HTMLLinkElement.media | ✔️ | - |
| HTMLLinkElement.referrerPolicy | ✔️ | - |
| HTMLLinkElement.sizes | ✔️ | - |
| HTMLLinkElement.type | ✔️ | - |
| HTMLMapElement.areas | ✔️ | - |
| HTMLMapElement.name | ✔️ | - |
| HTMLMeterElement.high | ✔️ | - |
| HTMLMeterElement.labels | ✔️ | - |
| HTMLMeterElement.low | ✔️ | - |
| HTMLMeterElement.max | ✔️ | - |
| HTMLMeterElement.min | ✔️ | - |
| HTMLMeterElement.optimum | ✔️ | - |
| HTMLMeterElement.values | ✔️ | - |
| HTMLModElement.cite | ✔️ | - |
| HTMLModElement.datetime | ✔️ | - |
| HTMLOListElement.reversed | ✔️ | - |
| HTMLOListElement.start | ✔️ | - |
| HTMLOListElement.type | ✔️ | - |
| HTMLProgressElement.max | ✔️ | - |
| HTMLProgressElement.position | ✔️ | - |
| HTMLProgressElement.value | ✔️ | - |
| HTMLQuoteElement.cite | ✔️ | - |
| HTMLSelectElement.form | ✔️ | - |
| HTMLSelectElement.length | ✔️ | - |
| HTMLSelectElement.multiple | ✔️ | - |
| HTMLSelectElement.name | ✔️ | - |
| HTMLSelectElement.options | ✔️ | - |
| HTMLSelectElement.required | ✔️ | - |
| HTMLSelectElement.selectedIndex | ✔️ | - |
| HTMLSelectElement.selectedOptions | ✔️ | - |
| HTMLSelectElement.size | ✔️ | - |
| HTMLSelectElement.type | ✔️ | - |
| HTMLSelectElement.value | ✔️ | - |
| HTMLSourceElement.media | ✔️ | - |
| HTMLSourceElement.sizes | ✔️ | - |
| HTMLSourceElement.src | ✔️ | - |
| HTMLSourceElement.srcset | ✔️ | - |
| HTMLSourceElement.type | ✔️ | - |
| HTMLStyleElement.media | ✔️ | - |
| HTMLStyleElement.type | ✔️ | - |
| HTMLTableCellElement.abbr | ✔️ | - |
| HTMLTableCellElement.cellIndex | ✔️ | - |
| HTMLTableCellElement.colSpan | ✔️ | - |
| HTMLTableCellElement.headers | ✔️ | - |
| HTMLTableCellElement.rowSpan | ✔️ | - |
| HTMLTableCellElement.scope | ✔️ | - |
| HTMLTableColElement.span | ✔️ | - |
| HTMLTableElement.caption | ✔️ | - |
| HTMLTableElement.rows | ✔️ | - |
| HTMLTableElement.tBodies | ✔️ | - |
| HTMLTableElement.tFoot | ✔️ | - |
| HTMLTableElement.tHead | ✔️ | - |
| HTMLTableRowElement.cells | ✔️ | - |
| HTMLTableRowElement.deleteCell() | ✔️ | - |
| HTMLTableRowElement.insertCell() | ✔️ | - |
| HTMLTableRowElement.rowIndex | ✔️ | - |
| HTMLTableRowElement.sectionRowIndex | ✔️ | - |
| HTMLTableSectionElement.deleteRow() | ✔️ | - |
| HTMLTableSectionElement.insertRow() | ✔️ | - |
| HTMLTableSectionElement.rows | ✔️ | - |
| HTMLTimeElement.dateTime | ✔️ | - |
| MutationObserver.disconnect() | ✔️ | - |
| MutationObserver.observe() | ✔️ | - |
| MutationObserver.takeRecords() | ✔️ | - |
| MutationRecord.addedNodes | ✔️ | - |
| MutationRecord.attributeName | ✔️ | - |
| MutationRecord.attributeNamespace | ✔️ | - |
| MutationRecord.nextSibling | ✔️ | - |
| MutationRecord.oldValue | ✔️ | - |
| MutationRecord.previousSibling | ✔️ | - |
| MutationRecord.removedNodes | ✔️ | - |
| MutationRecord.target | ✔️ | - |
| MutationRecord.type | ✔️ | - |
| Node.appendChild() | ✔️ | - |
| Node.childNodes | ✔️ | - |
| Node.cloneNode() | ✔️ | 仅支持 Element 层级 |
| Node.contains() | ✔️ | - |
| Node.firstChild | ✔️ | - |
| Node.hasChildNodes() | ✔️ | - |
| Node.insertBefore() | ✔️ | - |
| Node.isConnected | ✔️ | - |
| Node.lastChild | ✔️ | - |
| Node.nextSibling | ✔️ | - |
| Node.nodeName | ✔️ | - |
| Node.nodeType | ✔️ | - |
| Node.nodeValue | ✔️ | 仅支持 Element 层级 |
| Node.ownerDocument | ✔️ | - |
| Node.parentElement | ✔️ | - |
| Node.parentNode | ✔️ | - |
| Node.previousSibling | ✔️ | - |
| Node.removeChild() | ✔️ | - |
| Node.replaceChild() | ✔️ | - |
| Node.textContent | ✔️ | - |
| NonDocumentTypeChildNode.nextElementSibling | ✔️ | - |
| NonDocumentTypeChildNode.previousElementSibling | ✔️ | - |
| ParentNode.childElementCount | ✔️ | - |
| ParentNode.children | ✔️ | - |
| ParentNode.firstElementChild | ✔️ | - |
| ParentNode.lastElementChild | ✔️ | - |
| ParentNode.querySelector() | ✔️ | 部分支持 |
| ParentNode.querySelectorAll() | ✔️ | 部分支持 |
| URL.href | ✔️ | - |
| Window.localStorage | ✔️ | - |
| Window.open() | ✔️ | - |
| Window.outerHeight | ✔️ | - |
| Window.outerWidth | ✔️ | - |
| Window.pageXOffset | ✔️ | - |
| Window.pageYOffset | ✔️ | - |
| Window.scroll() | ✔️ | - |
| Window.scrollTo() | ✔️ | - |
| Window.scrollX | ✔️ | - |
| Window.scrollY | ✔️ | - |
| Window.sessionStorage | ✔️ | - |
注意:当前的 querySelector 和 querySelectorAll 仅支持简单的选择器,例如:ID、类、元素或属性选择器。