2

私は、YouTube JS API のstopVideo()メソッドを機能させるためにしばらく努力してきました。誰もがそれを iframe 要素で呼び出すのと同じくらい簡単だと言いますが、私がそれを機能させることができた唯一の方法は、postMessage()他の誰かの Stackoverflow 投稿で見つけたメソッドを使用することでした。

コード:

$('iframe').postMessage('{"event":"command","func":"stopVideo","args":""}', '*')

最終的にそれが私のために働いたのです。しかし、それでも、私は自分が何をしているのか理解できません。誰かが私にこれを説明できますか?

4

1 に答える 1

3

MDN postMessage から

window.postMessageクロスオリジン通信を安全に有効にする方法です。通常、異なるページ上のスクリプトは、スクリプトを実行したページが同じプロトコル (通常は両方とも http)、ポート番号 (http のデフォルトは 80)、およびホスト (モジュロ) を持つ場所にある場合にのみ、相互にアクセスできます。 document.domain は両方のページで同じ値に設定されています)。window.postMessage は、適切に使用すると安全な方法でこの制限を回避するための制御されたメカニズムを提供します。

つまり、同じ発信元ポリシーを回避して、他のドメインと通信できます。唯一の問題です。すべてのブラウザがサポートしているわけではありません。

于 2012-08-23T02:44:16.293 に答える