2010-11-23 4 views
0

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);   
    }); 
}); 
+0

Quel code utilisez-vous pour intégrer les vidéos YouTube? –

+3

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. –

+0

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. –

Répondre

0

À partir de votre page, voici les erreurs qui se produisent. Internet Explorer, Chrome et Firefox disposent tous de bons débogueurs/consoles JavaScript disponibles pour afficher ces informations.

'pollsL10n' is undefined polls-js.js?ver=2.50, line 1 character 62 
pollsL10n.show_loading=parseInt(pollsL10n.show_loading) 


Object doesn't support this property or method headcount-multimedia, line 135 character 9 
$(".tweet").tweet({ 


Object doesn't support this property or method slider.js, line 32 character 4 
jQuery("#main-photo-slider").codaSlider(); 

Object doesn't support this property or method main.js, line 31 character 1 
jQuery.cookie('widget widget_text'); 
+0

Droit. Ces erreurs étaient présentes avant que la page ne cesse de fonctionner, et rien sur quoi j'ai travaillé (je suis stagiaire). J'ai toujours l'impression que c'est un problème avec jQuery trouver les sélecteurs (ce qui est tellement bizarre ...) – danwoods

+0

Compris pourquoi jQuery ne trouvait pas les sélecteurs. Maintenant, il les trouve, mais n'ajoute toujours pas le contenu qu'il est censé – danwoods

+0

Des erreurs comme celles ci-dessus peuvent interférer avec tout ce qui vient après ce point dans ces scripts. Le script arrête d'être exécuté quand ils se produisent ... peut ou ne peut pas avoir quelque chose à voir avec les problèmes que vous voyez. –

Questions connexes