2009-12-29 17 views
6

Ho avuto problemi nel tentativo di capirlo. Quello che sto cercando di fare è ottenere l'ID di un video da YouTube e inserire l'ID di 11 caratteri nel css di uno div di un ID specifico usando jQuery. Conosco l'URL per la miniatura di qualsiasi video, ma devo solo essere in grado di modificare l'ID per visualizzare miniature di video diverse.Recupero dell'ID video di YouTube in un URL e immissione dell'ID video selezionato in un 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> 

Cercando di spiegare meglio questo, voglio che il 11 Character YouTube Video ID dal codice embedded, e metterlo nella URL della miniatura (http://img.youtube.com/vi/" + function(data) + "/0.jpg"). Quale, sostituirebbe anche l'originale div (<div id="304817679">).

Sono sulla buona strada con la mia sceneggiatura?

risposta

0

OK, quindi quello che vuoi veramente è come trovare e sostituire un testo, a quanto pare. Date un'occhiata a Find & replace jquery

Oppure avete problemi anche con la ricezione e l'impostazione dell'attributo?

+0

No, non penso che sia quello che volevo. Viene mostrato l'ID video del video: "http://img.youtube.com/vi/THIS IS WHERE THE ID IS/0.jpg". Voglio sostituire "QUESTO È L 'ID È" con l'ID video contenuto nel codice incorporato: param name = "movie" value = "http://www.youtube.com/v/CHE' E 'L'ID & rel = 0 &. Mentre sostituisce l'intero div (

Contents
) e il suo contenuto con un altro div che avrà l'immagine di sfondo impostata come "http://img.youtube.com/vi/THIS IS WHERE THE ID IS/0.jpg " – Dave

+0

Quindi, si tratta di trovare la regex per abbinare il testo tra le 2 barre. Facci sapere come procedi su questo :) – Eduardo

1

Non sono sicuro di cosa stai provando a fare, ma la funzione non può essere chiamata (in seguito) se non ha un nome. Inoltre non sono stati definiti dati variabili.

$(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

cosa accade se l'URL del video di YouTube è: http://www.youtube.com/user/sothebysrealty?feature=watch

non c'è 'id' in quei tipi di URL. Se il proprietario ha usato bitly o simili, è possibile invertire l'url online ma, tuttavia, si ottiene qualcosa come sopra.

Non sono stato in grado di capire come ottenere il lettore video da utilizzare tramite l'API di YouTube.

Problemi correlati