2009-12-29 18 views
6

He estado teniendo problemas tratando de resolver esto. Lo que intento hacer es obtener la ID de un video de YouTube e ingresar la ID de 11 caracteres en el css de un identificador específico de div usando jQuery. Conozco la URL de la miniatura de cualquier video, pero solo necesito poder cambiar la ID para mostrar diferentes miniaturas de video.Obteniendo ID de video de YouTube en una URL e ingresando ID de video seleccionado en una URL

<script> 
    $(document).ready(function() { 
     function(data) { 
      videoID = data.split('www.youtube.com/v/')[1].split('&amp')[0]; 
      $("#304817679").append(videoID); 
     }); 

     $("#304817679").replaceWith("<div id=\"304817679\" " + 
      "style=\"background: url(http://img.youtube.com/vi/" + 
      $.function(data) + 
      "/0.jpg) no-repeat middle; width: 15px; height: 150px;\"></div>"); 
    }); 
</script> 

<div id="304817679"> 
    <div style="display: none;"> 
     <object width="248" height="222"> 
      <param name="movie" value="http://www.youtube.com/v/vy90n2nNRKQ&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"></param> 
      <param name="wmode" value="transparent"></param> 
      <param name="allowFullScreen" value="true"></param> 
      <embed src="http://www.youtube.com/v/vy90n2nNRKQ&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="248" height="222" allowFullScreen="true" wmode="transparent"></embed> 
     </object> 
    </div> 
</div> 

Tratar de explicar esto mejor, quiero que el 11 Carácter YouTube Video ID del código embebido, y lo puso en la URL de la imagen en miniatura (http://img.youtube.com/vi/" + function(data) + "/0.jpg"). Cuál, entonces también substituiría el div original (<div id="304817679">).

¿Estoy en el camino correcto con mi script?

Respuesta

0

OK, entonces lo que realmente quieres es cómo encontrar y reemplazar un texto, parece. Eche un vistazo a Find & replace jquery

¿O está teniendo problemas incluso con obtener y establecer el atributo en absoluto?

+0

No, no creo que eso sea lo que quería. Se muestra la identificación del video del video: "http://img.youtube.com/vi/THIS IS WHERE ID ID/0.jpg". Quiero reemplazar el 'ESTO ES DONDE ESTÁ LA IDENTIFICACIÓN' con la identificación del video contenida en el código incrustado: param name = "movie" value = "http://www.youtube.com/v/HERE IS THE ID & rel = 0 &. Mientras reemplaza todo el div (

Contents
) y su contenido con otro div que tendrá la imagen de fondo establecida como "http://img.youtube.com/vi/THIS IS WHERE ID ID///" – Dave

+0

Por lo tanto, se trata de encontrar la expresión regular para que coincida con el texto entre las 2 barras diagonales. Déjanos saber cómo progresas en esto :) – Eduardo

1

No estoy seguro de qué intenta hacer, pero no se puede llamar a la función (luego) si no tiene un nombre. Además, no se definieron datos variables.

$(document).ready(function() { 

    //lets give this function a name 
    function getID(data) { 
     //videoID is parsed nicely 
     videoID = data.split('www.youtube.com/v/')[1].split('&amp')[0]; 

     //this doesn't actually do anything useful since it is replaced afterwards 
     $("#304817679").append(videoID); 

     //to get a value out of function we need to return it 
     return videoID; 
    }; 

    //background style wasn't defined correctly 
    //changed to background-image and background-repeat 
    //lets also supply getID function HTML as data 
    $("#304817679").replaceWith("<div id=\"304817679\" " + 
     "style=\"background-image: url(http://img.youtube.com/vi/" + 
     getID($("#304817679").html()) + 
     "/0.jpg); background-repeat: no-repeat; width: 15px; height: 150px;\"></div>"); 
}); 

Demo

0

qué sucede si el URL para el vídeo de YouTube es: http://www.youtube.com/user/sothebysrealty?feature=watch

no hay 'id' en aquellos tipos de URL. Si el propietario ha usado bitly o similar, puede revertir la url en línea, pero aún así, uno obtiene algo así como el anterior.

No he podido averiguar cómo hacer que el reproductor de vid use esa url a través de la API de YouTube.

Cuestiones relacionadas