您可以在Shadow DOM中的元素上使用JW Player吗?

时间:2020-09-03 09:28:06

标签: javascript html dom jwplayer flutter-web

预设

由于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元素对象。

通过ID

我不能使用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中的元素?

0 个答案:

没有答案