HTMLSlotElement - 访问 <slot> 元素

HTMLSlotElement 接口是 Shadow DOM API的一部分,允许访问 HTML <slot> 元素的名称和分配的节点。

属性

HTMLSlotElement.name

DOMString:可用于获取和设置插槽的名称

方法

HTMLSlotElement.assignedNodes()

返回分配给该插槽的元素序列,或者插槽的回退内容。

实例

let slots = this.shadowRoot.querySelectorAll('slot');
slots[1].addEventListener('slotchange', function(e) {
  let nodes = slots[1].assignedNodes();
  console.log('Element in Slot "' + slots[1].name + '" changed to "' + nodes[0].outerHTML + '".');
});

在这里,我们获取所有插槽的引用,然后为第二个插槽添加一个 slotchange 事件监听器。

每次插入插槽中的元素发生变化时,我们都会向控制台发送报告,说明哪个插槽已更改,以及插槽中的新节点是什么。

规范

规范 状态 备注
HTML Living Standard
HTMLSlotElement 的定义
现行的标准 -

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 53 不支持1 支持 不支持 40 10.1
name 53 不支持1 支持 不支持 40 10.1
assignedNodes 53 不支持1 支持 不支持 40 10.1

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 53 53 不支持1 支持 未知 40 10.1
name 53 53 不支持1 支持 未知 40 10.1
assignedNodes 53 53 不支持1 支持 未知 40 10.1

1. 考虑中