2014-09-05 48 views
1

對不起,如果這看起來像我的早期問題的轉發,但事實並非如此。 這是另一種不同方法的問題。將postMessage命令的參數傳遞給YouTube的iframe

我有這樣的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

你嘗試' 「ARGS」:20,真]'? – 2014-09-05 11:42:08

+0

sweeet,作品! :) – 2014-09-05 12:35:27

+0

出於好奇(這是真誠的好奇心...不是一個拙劣的嘗試,建議你做錯了什麼),爲什麼你使用postMessage而不是用YouTube iframe API創建一個對象?這種方法會帶來什麼好處? – jlmcdonald 2014-09-06 04:11:24

回答

2

試試這個:

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

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