这是来自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。帮助!
答案 0 :(得分:2)
在加载https://www.youtube.com/iframe_api之前,应定义功能 onYouTubeIframeAPIReady() 。
这是一个想法:
<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之前已加载。
最好的问候。
答案 1 :(得分:0)
但你的代码有效。在这里看到: http://jsfiddle.net/aXLA2/
<iframe id="player" type="text/html" width="640" height="360"src="http://www.youtube.com/embed/1_QO8LoGNpc?enablejsapi=1" frameborder="0"></iframe>
<script src="https://www.youtube.com/iframe_api"></script>