Youtube嵌入了API和外部JS

时间:2016-06-02 14:48:10

标签: javascript jquery html youtube

我已经阅读了You​​Tube API的基础知识,并将其在我的网页上运行,没有任何问题。但是,我希望能够使用视频的状态来触发或停止我在外部JS文件中编写的某些功能。我真的很感激任何帮助!

目前我在iframe本身后面嵌入了我的HTML文件:

SELECT
  name,
  dob,
  TIMESTAMPDIFF( YEAR, dob, now() ) as _year,
  TIMESTAMPDIFF( MONTH, dob, now() ) % 12 as _month,
  FLOOR( TIMESTAMPDIFF( DAY, dob, now() ) % 30.4375 ) as _day
FROM 
  client

上面的代码本身工作正常,但正如我之前所说,我想将其移动到外部文件,所以我可以,例如,当视频播放等时暂停旋转木马,其功能已经在说JS文件。

有谁能告诉我如何才能在其他文件中成功访问它?

非常感谢您的帮助!

标记

2 个答案:

答案 0 :(得分:3)

对于任何可能提供帮助的人来说,这是我最终找到的解决方案:

iframe正常嵌入HTML,但HTML中没有完成任何JS。在我的JS文件中,我有以下内容:

var myPlayerState;
$(function(){
    var yt_int, yt_players={},
        initYT = function() {
            $("IDOrClassOfMyVideo").each(function() {
                yt_players[this.id] = new YT.Player(this.id,
                {
                    events: {
                        'onReady' : onPlayerReady,
                        'onStateChange': onPlayerStateChange
                    }
                });
            });
        };

    $.getScript("//www.youtube.com/player_api", function() {
        yt_int = setInterval(function(){
            if(typeof YT === "object"){
                initYT();
                clearInterval(yt_int);
            }
        },500);
    });

然后其余代码中的函数正常工作!

答案 1 :(得分:1)

以下是一些选项:

  1. 将代码移动到与其他JS函数相同的文件中。
  2. 将代码移动到自己的文件中,然后使用脚本标记 >包含其他JS函数的文件将其导入。
  3. 使用像requirejs
  4. 这样的JS文件/模块加载器