由于HTML元素在 Flutter Web 中的工作方式(与问题的概念无关),我有必要将我的div
元素想要use jwplayer
on在阴影DOM 中。
我在shadow root中有一个<div id="foo-player">
作为文档正文中node的子代。 JW Player <script>
包含在文档的<head>
中。
可以轻松地在任何<div>
上设置播放器:
jwplayer("foo-player").setup(..)
// or
jwplayer(divElement).setup(..)
我发现您可以在the source code中使用任何DOM元素对象。
我不能使用jwplayer("foo-player")
,因为影子DOM显然隐藏了文档中的元素,因此document.getElementById
不起作用。
我可以使用document.getElementById('shadow-dom-host').shadowRoot.getElementById('foo-player')
(其中shadow-dom-host
是承载影子DOM的DOM元素)并将该元素传递给jwplayer
。
我可以在生成的对象上成功调用setup
,因此JW Player似乎接受了它,但是,我看不到。
我认为后一种尝试不起作用,因为CSS等仍未从影子DOM中隐藏,这意味着jwplayer
仍将无法使用影子DOM。
有什么方法可以在阴影DOM 中运行jwplayer
,以便它可以与{{1} }影子DOM中的元素?