HTMLElement: attachInternals() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

HTMLElement.attachInternals() 方法返回一个 ElementInternals 对象。此方法允许 自定义元素 参与 HTML 表单。ElementInternals 接口提供了用于处理这些元素的实用工具,其方式与处理任何标准 HTML 表单元素相同,并且还向元素公开了 可访问性对象模型 (Accessibility Object Model)。

语法

js
attachInternals()

参数

无。

返回值

一个 ElementInternals 对象。

异常

NotSupportedError DOMException

如果该元素不是自定义元素,则会抛出此异常。

NotSupportedError DOMException

如果在定义元素时禁用了 "internals" 功能,则会抛出此异常。

NotSupportedError DOMException

如果在同一个元素上两次调用此方法,则会抛出此异常。

示例

下面的示例演示了如何使用 HTMLElement.attachInternals 创建一个自定义的与表单关联的元素。然后,将 ElementInternals.form 属性打印到控制台,以证明我们有一个 ElementInternals 对象。

js
class CustomCheckbox extends HTMLElement {
  static formAssociated = true;

  constructor() {
    super();
    this.internals_ = this.attachInternals();
  }
  // …
}

window.customElements.define("custom-checkbox", CustomCheckbox);

let element = document.getElementById("custom-checkbox");
console.log(element.internals_.form);

规范

规范
HTML
# dom-attachinternals

浏览器兼容性

另见