我正在创建一个通过YT api嵌入的youtube播放器,但我一直收到一个警告,即变量YT未定义.我可以看到youtube API的脚本被包含在内,它应该创建变量YT - 所以为什么这不起作用?它适用于我网站上的其他地方.
这是链接:
http://oncreativity.tv/site/single/4/7CtQaTmEuWk
和我的代码:
<script>
$(document).ready(function() {
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
var videoSupport = Modernizr.video;
var ua = navigator.userAgent.toLowerCase();
var vid = {};
var params = { allowScriptAccess: "always" };
var atts = { id: "video_player_flash" };
{exp:channel:entries channel="creators" dynamic="off" entry_id="{segment_3}" sort="asc" limit="1"}
vid.description = "{creator_description}";
vid.videoID = '{segment_4}';
vid.link = encodeURI("{creator_link}");
vid.title = "{title}";
vid.photos = [];
{creator_work}
vid.photos[{row_index}] = {};
vid.photos[{row_index}].url = "{work_img}"; …Run Code Online (Sandbox Code Playgroud) 我正在尝试将此代码放在模块函数中:
$(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; …Run Code Online (Sandbox Code Playgroud) 我在我的 React 网站上使用Youtube Player API 。当我在网站上尝试时,出现以下错误:TypeError: Cannot read property 'ready' of undefined。这是我正在使用的代码:
var player;
function loadVideo() {
window.YT.ready(function () {
new window.YT.Player("player", {
height: "390",
width: "640",
videoId: "M7lc1UVf-VE",
events: {
onReady: onPlayerReady,
onStateChange: onPlayerStateChange,
},
});
});
function onPlayerReady(event) {
event.target.playVideo();
player = event.target;
}
function onPlayerStateChange(event) {
var videoStatuses = Object.entries(window.YT.PlayerState);
console.log(videoStatuses.find((status) => status[1] === event.data)[0]);
}
}
useEffect(() => {
setMaxDuration("06:00");
var tag = document.createElement("script");
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, …Run Code Online (Sandbox Code Playgroud)