0

我有一个已插入 YouTube 视频的 div,并且播放效果很好。但我希望能够单击视频上的某处并从 DOM 中删除嵌入代码,因此 div 会回到嵌入代码插入之前的状态,YouTube 视频和播放器完全消失。

我知道有一个 YouTube JavaScript API,但这似乎只是让你向播放器发送命令,如停止、暂停、播放。我想完全消除播放器,并从 DOM 中删除 iframe 似乎是最好的方法。

问题是我在 YouTube 播放器上单击的任何内容都会被播放器拦截,因此我从未在我的 JavaScript 或 jQuery 中收到点击。有什么方法可以让我在我的 JavaScript 或 jQuery 中感知对 YouTube 播放器的点击?

谢谢

4

2 回答 2

0

使用 then 加载播放器时,由于Same-Origin-Policy(指向不同域的链接),iframe您无法捕获页面内部发生的事件。iframeiframe

如果您真的想在每次点击播放器时停止并删除它(如果点击是在视频或控件上,则无所谓),那么您可以在其上放置一个div与播放器大小相同的空元素并使用它来抓住事件。检查mplungjan提到的问题如何 在youtube iframe上正确覆盖不透明的div

一个重要的注意事项:由于这也会阻止指向 youtube 的链接以及上下文菜单,我猜这是使用条款所不允许的。

于 2014-05-26T04:31:55.757 回答
0

如果您想捕捉点击以便对它们进行操作,请在播放器上方放置一个画布。

在里面做一个分区放一个画布和播放器分区

  canvas.style.zIndex = 2
  box=document.getElementById (div where the player is)
  box.zindex=1

您可能需要设置绝对位置以使它们相互重叠

现在您可以在画布上放置鼠标侦听器并捕获事件。在 Javascript 中,您可以根据需要将点击传递给播放器。Div.click() 或使用 API。

如果您的点击被播放器拾取,您可能还需要使用 event.stopPropagation()。

于 2014-05-26T04:37:20.910 回答