【发布时间】:2018-05-27 02:21:41
【问题描述】:
我在本地服务器上工作,正在试验 YouTube iframe API。
加载 iframe 时,我收到错误消息“无法在 'DOMWindow 上执行 'postMessage'”。
如何消除此错误?
【问题讨论】:
标签: youtube-api
我在本地服务器上工作,正在试验 YouTube iframe API。
加载 iframe 时,我收到错误消息“无法在 'DOMWindow 上执行 'postMessage'”。
如何消除此错误?
【问题讨论】:
标签: youtube-api
我在 IFRAME API 页面中尝试了Getting Started,并且能够使用python -m SimpleHTTPServer 8080 顺利运行示例。
您的问题可能与您使用 iframe API 的方式有关。查看此SO post 了解更多信息。
【讨论】:
我认为我们可以自定义 YT.Player 的 sendMessage
playerOptions.playerVars.origin = window.location.origin or your domain.
this.youtubePlayer = new YT.Player(element,playerOptions);
this.youtubePlayer.sendMessage = function (a) {
a.id = this.id, a.channel = "widget", a = JSON.stringify(a);
var url = new URL(this.h.src), origin = url.searchParams.get("origin");
if (origin && this.h.contentWindow) {
this.h.contentWindow.postMessage(a, origin)
}
}
我在我的项目中使用了这个函数来解决。 (来源answer)
【讨论】: