【发布时间】:2015-02-01 20:49:35
【问题描述】:
我在底部有一个主要的 YouTube 视频和一些相关视频。 YouTube 视频是从我的网址中的服装视频名称参数加载的。如果视频名称存在 YouTube iframe 会在页面加载时加载,但如果视频名称不存在 YT iframe 不会加载,直到用户单击底部的相关视频。如果用户单击相关视频,则加载 iframe,并且应使用与从一开始就加载 iframe 相同的函数 onPlayerReady 和 onPlayerStateChange。如何在页面中插入 iframe 并使用与从头开始加载时相同的功能。 ? player.js
var tag = document.createElement('script'),
firstScriptTag = document.getElementsByTagName('script')[0],
player;
tag.src = "https://www.youtube.com/player_api";
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: height,
width: width,
videoId: yt_id,
playerVars: {
wmode: "transparent",
controls: 0,
showinfo: 0,
rel: 0,
modestbranding: 1,
iv_load_policy: 3 //anottations
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
};
function onPlayerReady(event) {
//code here
//I want to use this code even when the player is loaded after the page is loaded (when the user clicks a related video at the bottom)
}
function onPlayerStateChange(event) {
//here too
}
insert_frame.js
var tag = document.createElement('script'),
firstScriptTag = document.getElementsByTagName('script')[0],
player;
tag.src = "https://www.youtube.com/player_api";
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
player = new YT.Player('ytplayer', {
height: height,
width: width,
videoId: yt_id,
playerVars: {
wmode: "transparent",
controls: 0,
showinfo: 0,
rel: 0,
modestbranding: 1,
iv_load_policy: 3 //anottations
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
【问题讨论】:
标签: javascript jquery youtube youtube-api