【发布时间】:2015-03-24 20:21:04
【问题描述】:
我正在尝试将此代码放入模块函数中:
$(document).ready(function()
{
VIDEO.onYouTubeIframeAPIReady();
}
var VIDEO = (function (my, $){
var tag = document.createElement('script');
var onPlayerStateChange;
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
my.onYouTubeIframeAPIReady =function() {
player = new YT.Player('player', {
height: '490',
width: '880',
videoId: SONG.getArtistId(),
playerVars: { controls:1, showinfo: 0, rel: 0, showsearch: 0, iv_load_policy: 3 },
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': catchError
}
});
}
function onPlayerReady(event) {
if(typeof(SONG.getArtistId()) == undefined)
{
console.log("undefineeeed");
}
event.target.playVideo();
}
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
// setTimeout(stopVideo, 6000);
done = true;
}
if(event.data == YT.PlayerState.ENDED)
{
location.reload();
}
}
function catchError(event)
{
if(event.data == 100) console.log("De video bestaat niet meer");
}
function stopVideo() {
player.stopVideo();
}
return my;
}(VIDEO || {}, jQuery));
问题是:即使它是自动执行的,也没有任何反应,并且 iFrame 也没有显示。 我正在尝试这样做,因为它是作业的一部分。我们必须在模块中工作。
【问题讨论】:
-
1.您没有将
onYouTubeIframeAPIReady函数连接到任何事件。 2.var VIDEO在script标记之外声明 3. 您正在使用 Jquery 而没有在您的页面上引用它。 -
@avrahamcool 对不起,我粘贴了错误的代码。我编辑了我的帖子。 (我有一个使用 jQuery 的参考,这不是问题)我得到:'Uncaught ReferenceError: YT is not defined'
-
创建一个演示问题的小提琴,它会更容易提供帮助。
标签: javascript iframe module youtube-api youtube-javascript-api