使用 Youtube API 找到刚刚播放完的 Youtube iframe 的父 div
Posted
技术标签:
【中文标题】使用 Youtube API 找到刚刚播放完的 Youtube iframe 的父 div【英文标题】:Find the parent div of the Youtube iframe that just finished playing using Youtube API 【发布时间】:2011-12-17 17:03:09 【问题描述】:我有这个功能:
function onPlayerStateChange(event)
if (event.data == 0)
alert(event.target.parentNode);
);
每次嵌入 iframe 发生“状态更改”时都会调用它。它只会在视频结束时发出警报消息,according to the docs,我可以通过调用event.target
来获取对播放器的引用但是,我希望能够找到event.target
的父 div,但我无法在其上调用任何 jquery 或常规 javascript。我怎样才能找到刚刚结束的播放器的父 div?
【问题讨论】:
【参考方案1】:event.target 不是解决此问题的可靠方法。正如 Molle 博士警告的那样,event.target 键确实会定期更改...
有一个getIframe() 函数可以让您更可靠地工作,因此event.target.getIframe().parentNode
将为您提供父DIV。
【讨论】:
这确实应该是公认的答案,因为它完全符合原始问题的要求,并且以安全的方式进行。 这正是我的情况:iframe 我可以使用 event.target.a 获得 iframe,几个月后使用 event.target.f 等等...... getIframe() 是正确的回答target.b
在 2021 年不再有效,但 event.target.getIframe()
仍然有效。
player.getIframe() in official API doc【参考方案2】:
event.target 这里不返回 html 元素(在这种情况下为 iframe),它返回播放器对象。您可以使用 event.target.b 访问 iframe(以及使用 event.target.b.parentNode 访问 div)。
请注意:这不是文档的一部分,我正在使用控制台检查 event.target 的成员。这种情况(通过 event.target.b 的访问)将来可能会发生变化。
【讨论】:
反之,你将如何从 iframe HTML 元素转到播放器对象? 没关系。我所做的是当我从播放器对象获取 iframe 时,我将 iframe 的 id 作为键存储,将播放器对象存储为全局关联数组中的值。因此,我总是可以调用数组从 iframe 中拉出播放器。 event.target 在我的情况下不会产生玩家。播放器会将“loadVideoById”作为功能之一。请帮助我***.com/questions/20794974/…以上是关于使用 Youtube API 找到刚刚播放完的 Youtube iframe 的父 div的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 YouTube Android Player API 播放某些 Youtube 视频
如何使用 Youtube Javascript API 获取 youtube 用户的观看历史记录?