Ciao ragazzi mi rivolgo a voi per un aiuto riguardante la creazione di una search bar che si collega alle api di youtube e preleva l' id video del primo video dei risultati della ricerca!
Ho creato una textbox con un comando cerca abbinato:
<label control="textbox" value="Inserisci:" />
<textbox id="cerca-testo" />
<button label="Cerca" oncommand="oggettoToolbar.Search();" />
scrivi nella textbox,premi il pulsante cerca e viene richiamata la funzione Search. Tutto semplice..Di seguito vi posto le 4 funzioni che uso:
function Search()
{
var testoricerca = document.getElementById('cerca-testo');
var script = document.createElement('script');
script.setAttribute('id', 'jsonScript');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://gdata.youtube.com/feeds/' +
'videos?vq='+ testoricerca +'&max-results=20&' +
'alt=json-in-script&callback=caricavideo&' +
'orderby=relevance&sortorder=descending&format=5&fmt=18');
document.documentElement.firstChild.appendChild(script);
},
function caricavideo(data)
{
var feed = data.feed;
var entries = feed.entry || [];
var id = (this.prendiVideoId(entries[0].link[0].href));
var URL = "http://www.youtube.com/watch?v="+id;
this.LoadURL(URL);
},
function prendiVideoId(url)
{
return url.substring(url.indexOf('=')+1,url.lastIndexOf('&'));
},
LoadURL: function(url)
{
window._content.document.location = url;
window.content.focus();
},
Spiegazione: chiamo la Search, essa si connette alle api di youtube passandogli il testo da ricercare, fa la ricerca scaricando dati json, fa una chiamata di callbak alla funzione caricavideo(data) che elabora e estrapola usando la funzione prendivideoid l' id del video e carica una nuova pagina di youtube con quel video.Però non funziona..riuscite a capire il perchè?grazie a tutti!ciao!