将postMessage命令的参数传递给youtube iframe的位置

时间:2014-09-05 11:17:17

标签: 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, allowSeekAhead:Boolean)

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

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

但没有成功。 我可能把参数放在了错误的地方,因为这是我第一次使用iframes的postMessage函数,我觉得在这个意义上有点像新手一样。

有人能帮帮我吗? :)

1 个答案:

答案 0 :(得分:2)

试试这个:

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

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