2010-11-16 6 views
0

Je dois ajouter ajouter le "& rel = 0" à la fin d'un tag SRC fin à partir d'un code d'intégration YouTube. Juste là où "xCODE doit GO HEREx" est placé est où je dois placer le & rel = 0. Y at-il un moyen de le faire en utilisant la fonction Append de jQuery?Utiliser jQuery pour ajouter une vidéo YouTube?

<embed src="http://www.youtube.com/v/S6I6Fc5mJeE&hl=en_US&fs=1xCODE NEEDS TO GO HEREx" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="284" height="171"></embed> 

je besoin de cette fonctionnalité parce que nous avons plusieurs vidéos sur notre site et il est une douleur d'avoir à trouver la table de base de données, et modifier à corriger.

Aidez s'il vous plaît!

Adam

Répondre

1

Essayez ceci:

var __mainDiv; 
var __preLoaderHTML; 
var __opts; 

function __jQueryYouTubeChannelReceiveData(data) { 

    var cnt = 0; 

    $.each(data.feed.entry, function(i, e) { 
     if (cnt < __opts.numberToDisplay) { 
      var parts = e.id.$t.split('/'); 
      var videoId = parts[parts.length-1]; 
      var out = '<div class="video"><a href="' + 
        e.link[0].href + '"><img src="http://i.ytimg.com/vi/' + 
        videoId + '/2.jpg"/></a><br /><a href="' + 
        e.link[0].href + '">' + e.title.$t + '</a><p>'; 
      if (!__opts.hideAuthor) { 
       out = out + 'Author: ' + e.author[0].name.$t + ''; 
      } 
      out = out + '</p></div>'; 
      __mainDiv.append(out); 
      cnt = cnt + 1; 
     } 
    }); 

    // Open in new tab? 
    if (__opts.linksInNewWindow) { 
     $(__mainDiv).find("li > a").attr("target", "_blank"); 
    } 

    // Remove the preloader and show the content 
    $(__preLoaderHTML).remove(); 
    __mainDiv.show(); 
} 

(function($) { 
    $.fn.youTubeChannel = function(options) { 
     var videoDiv = $(this); 

     $.fn.youTubeChannel.defaults = { 
      userName: null, 
      channel: "favorites", //options are favorites or uploads 
      loadingText: "Loading...", 
      numberToDisplay: 3, 
      linksInNewWindow: true, 
      hideAuthor: false 
     } 

     __opts = $.extend({}, $.fn.youTubeChannel.defaults, options); 

     return this.each(function() { 
      if (__opts.userName != null) { 
       videoDiv.append("<div id=\"channel_div\"></div>"); 
       __mainDiv = $("#channel_div"); 
       __mainDiv.hide(); 

       __preLoaderHTML = $("<p class=\"loader\">" + 
        __opts.loadingText + "</p>"); 
       videoDiv.append(__preLoaderHTML); 

       // TODO: Error handling! 
       $.ajax({ 
        url: "http://gdata.youtube.com/feeds/base/users/" + 
         __opts.userName + "/" + __opts.channel + "?alt=json", 
        cache: true, 
        dataType: 'jsonp',      
        success: __jQueryYouTubeChannelReceiveData 
       }); 
      } 
     }); 
    }; 
})(jQuery); 

Pour utiliser le plug-in YouTube il vous suffit d'ajouter une référence de script à la bibliothèque jQuery et le fichier jquery.youtube.channel.js. Ensuite, ajoutez un contenant pour le rendu HTML, une ligne de JavaScript pour tout câbler, et certains CSS pour formater la sortie:

<script type=”text/javascript” src=”jquery.youtube.channel.js”></script> 

<div id="youtubevideos"></div> 

<script type="text/javascript"> 
$(document).ready(function() { 
$('#youtubevideos').youTubeChannel({ 
userName: 'diggerdanh', 
channel: "favorites", 
hideAuthor: false, 
numberToDisplay: 6, 
linksInNewWindow: true 
//other options 
//loadingText: "Loading...", 
}); 
}); 
</script> 
+0

Ce n'est pas tout à fait ce que je cherchais. Si vous remarquez & rel = 0, cela signifie que je ne veux pas afficher de vidéos similaires. –

+0

Par cette discussion (http://www.google.com/support/forum/p/youtube/thread?tid=0a4bcc496e26d04f&hl=fr) Puis-je ajouter le & rel = 0 en utilisant jQuery? –

+0

Cela semble comme _way_ plus de code que nécessaire. –

0

je l'aurais fait quelque chose comme cette déclaration jQuery non testé:

$("embed[src]").attr("src", this.attr("src") + "&rel=0"); 
+0

Vous devez utiliser une fonction pour que cela fonctionne (voir ma réponse). –

+0

J'ai essayé votre correctif Matt et ça marche la première fois. J'ai ensuite redéfini l'heure à 5 secondes avant la fin de la vidéo et je l'ai visionné en plein écran. Il a ensuite montré les vidéos connexes. Je pense que cela pourrait être un problème avec l'initialisation du plugin avant que jQuery édite le src. –

1

Y at-il une raison pour laquelle vous ne pouvez pas le faire avec ol 'jQuery?

$('embed[src^=http://www.youtube.com/]').attr('src', function (i, v) 
{ 
    return v + '&rel=0'; 
}); 

Cela semble fonctionner pour moi. http://jsfiddle.net/mattball/tt3AG/

+0

et @Neil, aucun script ne fonctionne. Des pensées? –

+0

@Adam: un peu plus de détails serait utile. Et ça ne marche pas? Il semble fonctionner pour moi: http://jsfiddle.net/mattball/tt3AG/ –

+0

@Adam: aussi, comme je l'ai commenté sur la réponse de Neil, sa version ne fonctionnera pas parce que cela ne se référera pas à l'objet correct. –

Questions connexes