【发布时间】:2021-09-15 21:13:43
【问题描述】:
我很确定 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”问题。
【问题讨论】:
-
我在使用无效 ID 时也看到了这一点。
onReady运行得很好,但是在用户点击播放之前我无法确定视频是否真的准备好了——这对我的用例来说太晚了。
标签: javascript youtube-iframe-api