是否可以查看Shadow DOM元素是否存在?我并不太关心操纵它,甚至不是真的瞄准它.我理解封装的原因.但是我希望能够根据Shadow DOM元素是否存在来设置常规DOM中的其他元素.
有点像:
if ( $('#element-id #shadow-root').length ) {
// true
}
Run Code Online (Sandbox Code Playgroud)
或者如果不是阴影根,至少是一个特定的元素,比如div的id.因此,如果该div存在,那么很明显Shadow DOM元素在页面上.
我知道这不会那么简单......从我做过的一些研究中,有些事情就像这样>>>,/deep/但他们的支持似乎很低/没有/弃用.购买也许还有另一种方式,不管它有多么优雅?
通过简单检查尝试确定DOM元素
isElement = SomeThing instanceof Element
Run Code Online (Sandbox Code Playgroud)
适用于主文档,但不适用于iframe中的(所有?)节点.
示例输出(谷歌浏览器):(主要文档中的mdiv是DIV,iframe中的id是DIV)
OMGWTF
ok: mdiv instanceof Element ... true ... [object HTMLDivElement]
ok: mdiv instanceof Object ... true ... [object HTMLDivElement]
ko: idiv instanceof Element ... false ... [object HTMLDivElement]
KO : idiv instanceof Object ... false ... [object HTMLDivElement]
Run Code Online (Sandbox Code Playgroud)
主文档和iframe文档有不同的javascript实现???
请解释我的错误.
示例:(http://www.sbmintegral.sk/GITHUB/OMGWTF/obalka.xhtml)
代码:obalka.xhtml(主要文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Obalka</title>
</head>
<body>
<div id="auto_filled_commands_container">
MAIN div id="auto_filled_commands_container"<br/>
<iframe id="auto_filled_commands_iframe" src='dopis.xhtml' style="width:98%;height:98%;"/>
</div>
<div>
<textarea id="OMGWTF" style="width:700px;height:200px">
mdiv = …Run Code Online (Sandbox Code Playgroud) 我正在为Google Earth创建一个tampermonkey脚本,当您按下一个键时,它将隐藏工具栏。应该隐藏的元素之一如下所示:
<earth-toolbar id="toolbar" role="toolbar">...</earth-toolbar>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码隐藏它:
document.getElementById('toolbar').style.display = 'none'
Run Code Online (Sandbox Code Playgroud)
请注意,它在控制台中也不起作用。
但是,我收到此错误。
未捕获的TypeError:无法在HTMLDocument.eval读取null的属性“样式”
是否可以在不修改实际创建自定义元素的代码的情况下访问自定义元素,如果可以,它是什么?
给定阴影根中包含的元素,如何获取承载所述阴影根的元素?有没有一种方法可以实现这一点,无论元素在树中的位置(即给定引用element2或者element3,获取引用element1)?
element1
? #shadow-root
? element2
? element3
Run Code Online (Sandbox Code Playgroud)