错误无法使用youtube-nocookie在“ DOMWindow”上执行“ postMessage”

时间:2019-07-30 11:33:16

标签: javascript youtube-api youtube-iframe-api

我正在使用Youtube iFrame API用iframe(嵌入的视频)替换页面上的div。视频始终显示并正确播放。

https://s.ytimg.com/yts/jsbin/www-widgetapi-vflB7PmFQ/www-widgetapi.js 153 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube-nocookie.com') does not match the recipient window's origin ('https://draft-origin.integration.publishing.service.uk'). (Capybara::Chromedriver::Logger::JsError)

但是,我在运行测试时始终遇到上述错误,但是在加载页面时却经常出现(错误仍然显示并正常播放)。

在这里,我已经通过同样的问题浏览了其他各种问答,但似乎没有任何效果。我正在使用youtube-nocookie,所以我不知道这样是否有效。

视频设置:

<div>
     <span id="to-be-replaced" data-video-id="a-video-id-here"></span>
</div>
var tag = document.createElement('script')
tag.src = 'https://www.youtube.com/iframe_api'
var firstScriptTag = document.getElementsByTagName('script')[0]
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)

new window.YT.Player(elementId, {
    videoId: videoId,
    host: window.location.protocol + '//www.youtube-nocookie.com',
    playerVars: {
        enablejsapi: 1,
        origin: window.location.origin,
        rel: 0,
        disablekb: 1,
        modestbranding: 1
    },
    events: {
      onReady: function (event) {
        event.target.a.setAttribute('title', title + ' (video)')
      }
    }
})

我尝试过:

  • 强制主机http
  • 强制主机https
  • 添加widget_referrer

0 个答案:

没有答案