iOS の Safari には、現在の JavaScript の実行がユーザー アクション (通常はクリック イベント) で開始された場合にのみメディアの再生を許可するポリシーがあります。
ただし、起動するボタンにハンドラーをアタッチしsomeYoutubePlayer.playVideo()
、ユーザーがこのボタンをクリックすると、実際には次のようになります。
click
メイン ページ ウィンドウでイベントが発生するplayVideo
メソッドはYouTubeでaをpostMessage
起動します<iframe />
- iframe内で
message
イベントが発生します message
イベントのハンドラーが起動しますdomVideo.play()
が、現在のイベントはもはやclick
でmessage
はなく、内部iframe
ウィンドウにいるため、失敗します。
これを克服し、外部クリックイベントから再生をトリガーする方法を知っている人はいますか?