我一直在尝试让YouTube JS API的stopVideo()
方法工作一段时间。每个人都说它就像在iframe元素上调用它一样简单,但我能够让它工作的唯一方法是通过一个名为postMessage()
的方法,我在其他人的Stackoverflow帖子中找到它。
代码:
$('iframe').postMessage('{"event":"command","func":"stopVideo","args":""}', '*')
最终让它为我工作。但是,我仍然不明白我在做什么。任何人都可以向我解释这个吗?
答案 0 :(得分:3)
window.postMessage
是一种安全启用跨源的方法 通讯。通常,仅允许不同页面上的脚本 当且仅当执行它们的页面是相互访问时才相互访问 在具有相同协议的位置(通常都是http),端口号 (80是http的默认值)和host(modulo document.domain 由两个页面设置为相同的值)。 window.postMessage 提供了一种控制机制来规避这种限制 正确使用时安全的方式。
所以它的作用是让你绕过same origin policy并与其他域交谈。只有问题,并非所有浏览器都支持它。