Je tire des vidéos de YouTube pour les afficher sur une page multimédia sur un site. Le code fonctionne correctement depuis un moment, mais maintenant, mystérieusement, c'est cassé. Les tests sur ma machine à domicile montrent que tout fonctionne bien. Une idée de pourquoi cela pourrait arriver? (Note: le site wordpress, js est externe du poste WP, le code est visible @github, aucune erreur notable à l'aide d'outils de votre navigateur ou les peluches de ligne)JS fonctionne parfaitement sur la machine à la maison, pas tellement sur le serveur
Merci à l'avance ...
Javascript:
$(document).ready(function() {
//some variables
var videos = []; //placeholder for video information returned from youtube
var video_elm_arr = $('.video'); //array of 'video' elements in DOM
//hide videos until ready
$('.video').addClass('hidden');
//pull video data from youtube
$.ajax({
url: 'http://gdata.youtube.com/feeds/api/users/danwoodson/uploads?alt=json',
dataType: 'jsonp',
success: function(data) {
alert(data);
$.each(data.feed.entry, function(i,item){
//only take the first 7 videos
if(i > 6)
return;
//create object to hold the video's info
videos[i] = {};
videos[i].title = item.title.$t;
videos[i].url = item.media$group.media$content[0].url; //this will need to be cleaned before use
videos[i].summary = item.content.$t;
videos[i].thumbnail = item.media$group.media$thumbnail[3].url;
//assign title
$(video_elm_arr[i]).find('.video_title').append(videos[i].title);
//clean url
var video_url = videos[i].url;
var index = video_url.indexOf("?");
if (index > 0)
video_url = video_url.substring(0, index);
//and re-assign
videos[i].url = video_url;
if(i == 0){ //only for featured/main
//insert flash object in video element
$(video_elm_arr[i]).find('.video_title').after('<object id="video_0" width="475" height="267.1875">' +
'<param name="movie" value="' + video_url + '&showinfo=0"></param>' +
'<param name="allowFullScreen" value="true"></param>' +
'<param name="allowscriptaccess" value="always"></param>' +
'<embed src="' + video_url + '&showinfo=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="475" height="267.1875"></embed>' +
'</object>');
//and include summary
$(video_elm_arr[i]).find('#featured_summary').html(videos[i].summary);
}
else{ //else just use thumbnail and enlarge
$(video_elm_arr[i]).find('.video_title').after('<img src="' + videos[i].thumbnail +'" alt="video" id="video_' + i + '" />');
$(video_elm_arr[i]).find('img').animate({height: 84.375, width: 150}, 500);
}
//and finally show
$(video_elm_arr[i]).removeClass('hidden');
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {alert("error with retrieving videos");}
});
//create functionality
$('.non_featured').bind('click', function(){
//get clicked video's id
var clicked_vid_id = $(this).find('img').attr('id');
//clean
var index = clicked_vid_id.indexOf("_");
if (index > 0)
clicked_vid_id = clicked_vid_id.substring(index+1);
//get featured video's id
var cur_featured_vid_id = $('#featured').find('object').attr('id');
//clean
var index = cur_featured_vid_id.indexOf("_");
if (index > 0)
cur_featured_vid_id = cur_featured_vid_id.substring(index+1);
//create new swf object with clicked video's information
var new_featured_vid_swf = '<object id="video_' + clicked_vid_id + '" width="475" height="267.1875">' +
'<param name="movie" value="' + videos[clicked_vid_id].url + '?showinfo=0&autoplay=1"></param>' +
'<param name="allowFullScreen" value="true"></param>' +
'<param name="allowscriptaccess" value="always"></param>' +
'<embed src="' + videos[clicked_vid_id].url + '?showinfo=0&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="475" height="267.1875"></embed>' +
'</object>';
//clear out clicked video's image
$(this).find('img').remove();
//clear out featured video's original swf object
$('#featured').find('object').remove();
/*assign newly created swf objects to their appropriate locations*/
//set clicked
$(this).find('.video_title').html(videos[cur_featured_vid_id].title);
$(this).append('<img src="' + videos[cur_featured_vid_id].thumbnail +'" alt="video" id="video_' + cur_featured_vid_id + '" />');
$(this).find('img').animate({height: 84.375, width: 150}, 500);
//and set new featured/main
$('#featured').find('.video_title').html(videos[clicked_vid_id].title);
$('#featured').find('.video_title').after(new_featured_vid_swf);
$('#featured').find('#featured_summary').html(videos[clicked_vid_id].summary);
});
});
Quel code utilisez-vous pour intégrer les vidéos YouTube? –
Que signifie "c'est cassé"? Aidez-nous à vous aider: publier un code pertinent minimal, des erreurs de navigateur, des journaux de requêtes HTTP, etc. Un lien vers le code source n'aide pas sans plus de contexte. –
Il serait très utile si vous vérifiez les erreurs en utilisant les outils de développement de Chrome. Surveiller XHR et JavaScript pour les échecs possibles. –