Disons qu'il y a une DIV qui a du contenu et un lien YouTube. Je veux attraper ce lien YouTube et l'intégrer. Je veux saisir le lien et le remplacer par le code de l'intégration avec JS (jQuery). P> Mise à jour 1 : p> Ceci est mon JS jusqu'à présent: p>
3 Réponses :
Vous aurez besoin d'obtenir le contenu de la div avec quelque chose comme ceci: avec ce texte, vous pouvez utiliser une manipulation de chaîne ou des expressions régulières pour trouver l'URL.
Ensuite, vous pouvez créer du contenu JQuery à ajouter avec: p> et ajoutez-le à quelque chose avec les méthodes de manipulation de jQuery, comme p> Pour obtenir plus de détails que cela, votre question aura besoin de plus de détails. p> p>
J'ai mis à jour ma question avec mon JS actuel. J'ai ajouté des commentaires à ce dont j'ai besoin ou ce que je suis coincé.
J'ai changé le contenu code> d'un identifiant à une classe parce que je devinais que vous auriez plus d'une zone de contenu?
Je suis sûr qu'il y a un moyen beaucoup plus efficace de faire Ceci, mais c'est ma tentative de ça. note em> je suce à regex, alors ce que j'ai est aussi proche que je peux obtenir, je suis sûr que quelqu'un peut aider à l'améliorer, il n'est donc pas nécessaire de remplacer le html p> script p> i ' Soyez le premier à admettre que ce n'est pas joli, mais ça marche. J'ai également collé une version de travail de ce code dans Ce pastebin p> mise à jour: i J'ai nettoyé le code un peu, voici comment il regarde maintenant ( Demo ): P> < Pré> xxx pré> p> ? v = code> à l'intérieur de chaque boucle. p>
Bonne réponse, seulement le changement est dans ma réponse ci-dessous
Bonjour, je veux aussi supprimer le lien YouTube et le remplacer par la vidéo, comment puis-je faire cela?
@Waseem: J'ai mis à jour la démo ( jsfiddle.net/9r7pj/20 ), mais je suce toujours chez regex. J'ai ajouté cette ligne that.html (fonction (i, h) {retour h.replace (/ (http: \ / \ / www.youtube.com \ / watch \? V = \ w + ((\ & \ w + = \ w +) +)?) / g, '');}); code> et j'ai testé la regex ( Rubular.com/R/Qiovgv8Str ) et il semblait y travailler, mais pas à Jsfiddle ... Donc je n'ai aucune idée. De toute façon, vous pouvez supprimer manuellement les paramètres supplémentaires de l'URL si vous devez.
@Fudgey j'ai modifié la regex et cela a fonctionné bien, vérifiez-le dans Jsfiddle ici jsfiddle.net/9r7pj/21 a>
@Waseem: Je viens de remarquer que YouTube fournit un code iFrame par défaut maintenant. Je suppose que ça va travailler avec des iphones ou quelque chose. Juste une tête up;)
J'étais sur la même voie que maquillée que fudgey, mais je suce une regregyps encore plus que lui, alors j'ai "emprunté" son code jusqu'à ce moment-là. Un changement que j'ai fait est d'utiliser SWFObject pour intégrer la vidéo plutôt que de faire face au code de l'intégration. Cela signifie simplement que vous devez ajouter la bibliothèque SWFOBJECT à la page
$(function(){
// I added the video size here in case you wanted to modify it more easily
var vidWidth = 425;
var vidHeight = 344;
$('.content:contains("youtube.com/watch")').each(function(i){
var that = $(this);
var txt = $(this).html();
var vid = txt.match(/((\?v=)(\w[\w|-]*))/g); // end up with ?v=oHg5SJYRHA0
if (vid.length) {
$.each(vid, function(x){
var ytid = this.replace(/\?v=/,'') // end up with oHg5SJYRHA0
var playerid = 'videoplayer_' + i + "_" + x;
that.append("<div id='" + playerid + "'></div>");
swfobject.embedSWF("http://www.youtube.com/v/" + ytid, playerid, vidWidth, vidHeight, "8");
})
}
})
})
Joli! J'ai oublié d'utiliser swfobject.js :)
La réponse La question de cette question pourrait aider avec la partie REGEX: Stackoverflow.com/questions/1713222/...
BTW Il y a une API YouTube JavaScript qui est raisonnablement facile à utiliser et assez puissant (listes de lecture, etc.) développeurs.google.com/ YouTube / js_api_reference