3

这是来自 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。帮助!

4

2 回答 2

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 之前已加载。

此致。

于 2013-08-01T08:31:07.157 回答
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>
于 2013-07-14T17:00:23.547 回答