我非常确定YouTube Iframe API "onError“事件会在过去触发,因为我运行了一个基于此API的项目。但是最近"onError“事件不会被触发,即使是最简单的错误。
这是一个基于官方页面( https://developers.google.com/youtube/iframe_api_reference )的简单示例代码,是可行的:
<iframe id="existing-iframe-example"
width="640" height="360"
src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1"
frameborder="0"
style="border: solid 4px #37474F"
></iframe>
<script type="text/javascript">
var tag = document.createElement('script');
tag.id = 'iframe-demo';
tag.src = 'https://www.youtube.com/iframe_api';
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('existing-iframe-example', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': onError
}
});
}
function onError(event) {
console.log(event.data)
}
function onPlayerReady(event) {
}
function onPlayerStateChange(event) {
console.log(event.data);
}
</script>一旦将视频id字符串"M7lc1UVf-VE“修改为错误的字符串,如"M7lc1UVf",应该会触发"onError”事件,但现在没有。
根据官方页面指南:https://developers.google.com/youtube/players/support→“谷歌工程师监控并回答带有youtube-iframe-api标签的问题”,希望谷歌工程师能看到这篇文章并解决"onError“问题。
发布于 2021-09-22 11:04:24
您需要从服务器(而不是本地)加载页面。只需将其更改为不在本地加载。
我遇到了同样的问题,并且意识到如果我在本地加载页面,大多数错误事件都不会引发。如果我从我的azure服务器加载页面,错误是正确的。此外,如果html是本地加载的,则一些视频将根本无法工作/加载。
https://stackoverflow.com/questions/68250199
复制相似问题