【问题标题】:Get ID of custom element in javascript [duplicate]在javascript中获取自定义元素的ID [重复]
【发布时间】:2019-09-17 15:59:01
【问题描述】:

我正在为 Google 地球创建一个 Tampermonkey 脚本,当您按下某个键时它会隐藏工具栏。应该隐藏的元素之一如下所示:

<earth-toolbar id="toolbar" role="toolbar">...</earth-toolbar>

我正在尝试使用此代码隐藏它:

document.getElementById('toolbar').style.display = 'none'

请注意,它在控制台中也不起作用。

但是,我得到了这个错误。

未捕获的类型错误:无法读取 null 的属性“样式” 在 HTMLDocument.eval

是否可以在不修改实际创建它的代码的情况下访问自定义元素,如果可以,它是什么?

【问题讨论】:

  • 尝试调试,尝试运行 document.getElementById('toolbar'),检查它返回什么,一个元素!还是不行!!
  • @DupinderSingh 我试过了,它抛出了同样的错误。 >请注意,它在控制台中也不起作用。

标签: javascript html tampermonkey


【解决方案1】:

#toolbar 位于 #shadow-root 内,因此您必须访问该父级的 .root 属性才能找到其中的元素:

document.querySelector('earth-app').root.querySelector('#toolbar').style.display = 'none';

https://earth.google.com/web/

【讨论】:

  • 感谢您告诉我影子 DOM 是什么!
猜你喜欢
  • 2021-08-18
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 2013-10-08
  • 2017-04-25
相关资源
最近更新 更多