← 全部示例

JavaScript 开发与测试 reddit.com

Reddit:列出 shadow DOM 组件

将所有 Reddit 自定义元素记录到控制台,并标记哪些拥有 shadow root,帮助你编写选择器。

可复制的代码

// List custom elements that expose a shadow root, useful for writing selectors
function reportShadowRoots() {
  const seen = {};
  document.querySelectorAll('*').forEach(function (el) {
    const tag = el.tagName.toLowerCase();
    if (tag.indexOf('-') === -1) { return; }
    if (seen[tag]) { return; }
    seen[tag] = true;
    if (el.shadowRoot) {
      console.log('[jz] shadow root on <' + tag + '>', el.shadowRoot);
    } else {
      console.log('[jz] light-DOM custom element <' + tag + '>');
    }
  });
  console.log('[jz] ' + Object.keys(seen).length + ' distinct custom elements found');
}
reportShadowRoots();

如何使用此示例

  1. 用上方按钮复制代码。
  2. 安装 JustZix(2 分钟),在目标页面打开扩展。
  3. 添加一条匹配该页面的新规则。
  4. 将代码粘贴到规则的 JavaScript 面板并保存 — 每次访问页面时都会运行。

为此示例评分

暂无评分 — 成为第一个。

此示例有效吗?

没有可粘贴的地方,代码片段毫无用处。

JustZix 安装只需 2 分钟,并在每个匹配的页面上运行你的代码。无需账户、无需付费。

免费下载 查看应用场景