jquery - 在哪里将 postMessage 命令的参数传递给 youtube iframe

标签 jquery iframe youtube youtube-api postmessage

很抱歉,如果这看起来像是我之前的问题的重新发布,但事实并非如此。 这是不同方法的不同问题。

我有这个 iframe:

<iframe id="video1" width="970" height="546" src="https://youtube.com/embed/9IYRC7g2ICg?enablejsapi=1&autoplay=1&controls=0&loop=1&playlist=9IYRC7g2ICg&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>

现在,单击自定义按钮时手动暂停视频,效果很好:

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#button1').click(function() {
            $('#video1')[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
        });
    });
</script>

pauseVideo 是此处列出的命令 https://developers.google.com/youtube/iframe_api_reference .

我的问题是:我完全无法使用需要参数的命令,例如 seekTo(seconds:Number, allowedSeekAhead:Boolean)

为了在视频中跳转到 0:20,我尝试了:

$('#video1')[0].contentWindow.postMessage('{"event":"command","func":"seekTo","args":"20, true"}', '*');

但没有成功。 我可能把参数放在了错误的位置,因为这是我第一次使用 iframe 的 postMessage 函数,从这个意义上说,我感觉有点像新手。

有人可以帮我吗? :)

最佳答案

试试这个:

var data = {event: 'command', func: 'seekTo', args: [20, true]};
var message = JSON.stringify(data);

$('#video1')[0].contentWindow.postMessage(message, '*');

关于jquery - 在哪里将 postMessage 命令的参数传递给 youtube iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684693/

相关文章:

javascript - 如何将三个文本区域的内容动态显示到一个公共(public)文本区域中?

javascript - 使用 jQuery 用随机数组元素填充 20 个文本框

c# - 单击 WebBrowser 控件中 iframe 中的按钮

javascript - 从 youtube 视频生成音频波形

javascript - Backbone : fetch collection from server

javascript - 使用 javascript 或 jquery 设置 pc 删除按钮

css - 全屏视频 - 不显示全屏

javascript - 为什么这段 js 代码不能在 Chrome 和 Safari 中运行?

java - 在 webview Android 应用程序中启用 Flash

ajax - YouTube 检索刷新 token ?