我正在使用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