javascript - Youtube iframe 没有响应 postMessage 命令
问题描述
我正在尝试使用来自父级的 postMessage 命令来控制 YouTube iframe,但它似乎不起作用。
由于多种原因,我没有使用 YouTube API,只是一个带有 youtube 嵌入视频的普通 iframe。
<iframe id="video-player" :src="'https://www.youtube.com/embed/' + code + '?autoplay=1'"
seamless sandbox="allow-scripts allow-same-origin allow-presentation"></iframe>
我尝试发送命令的方式是:
var iframe = document.getElementById('video-player');
iframe.contentWindow.postMessage(JSON.stringify(
{ event: 'command', func: 'pauseVideo' }), 'https://www.youtube.com');
似乎 iframe 选择正确,但我不确定是否正在发送 postMessage 命令,因为视频会忽略它们。
我究竟做错了什么?
解决方案
我找到了解决方案。YouTube url 需要查询参数“enablejsapi=1”。
<iframe id="video-player" :src="'https://www.youtube.com/embed/' + code + '?autoplay=1&enablejsapi=1'"
seamless sandbox="allow-scripts allow-same-origin allow-presentation"></iframe>
像这样它正确地监听 postMessage() 命令。
推荐阅读
- python - 如何在opencv-python中取消MultiTracker的目标对象
- python - 在 Gmail 中打印与指定字符串条件匹配的电子邮件 - Selenium?
- linux - 为什么没有创建味精队列
- android - 如何使用 androidx.work 替换 AsyncTask?
- android - 在 Android 中使用黄油刀在 OnEditorAction 中引用空对象
- matlab - 何时以及如何对离散卷积进行零填充?
- linux - csh脚本等待多个pid
- python - Resample pandas dataframe and interpolate missing values for timeseries data
- mysql - 我如何在 SQL 工作台中获得累积总和
- python-3.x - 使用开/关开关创建 python GUI