这是来自 Youtube API 文档:
“如入门部分所述,您可以自己创建标签,而不是在您的页面上编写一个空元素,然后播放器 API 的 JavaScript 代码将用一个元素替换该元素。”
但是我无法获取 API 来回调我的 javascript。任何帮助都会很棒。
这是我的 HTML 代码:
<iframe id="player" type="text/html" width="640" height="360"src="http://www.youtube.com/embed/1_QO8LoGNpc?enablejsapi=1" frameborder="0"></iframe>
JavaScript:
<script>
function onYouTubeIframeAPIReady() {
alert("hey");
player = new YT.Player('player', {
// height: '720',
// width: '1280',
// videoId: '1_QO8LoGNpc',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
</script>
我可以使用 javascript 创建 iframe 但不在页面上设置 iframe 来让它工作。帮助!
最佳答案
函数 onYouTubeIframeAPIReady() 应该在加载之前定义 https://www.youtube.com/iframe_api .
思路是这样的:
<iframe id="player" type="text/html" width="640" height="360"src="http://www.youtube.com/embed/1_QO8LoGNpc?enablejsapi=1" frameborder="0"></iframe>
<script>
function onYouTubeIframeAPIReady() {
alert("hey");
player = new YT.Player('player', {
// height: '720',
// width: '1280',
// videoId: '1_QO8LoGNpc',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
</script>
<script src="https://www.youtube.com/iframe_api"></script>
为什么?因为iframe_api加载后会调用这个函数。在您的情况下,iframe_api 之前已加载。
最好的问候。
关于api - Youtube iFrame javascript API onYouTubeIframeAPIReady not firing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637205/