di: Christian Heilmann 09 Febbraio 2009
function found(o){
var list = document.createElement('ul');
var results = o.ysearchresponse.resultset_web;
if(results){
var item,link,description;
Creiamo una nuova lista e poi otteniamo l'array resultset_web dai dati restituiti dalla chiamata all'API. Se non vengono restituiti risultati, l'array non esisterà (ecco perché dovremo verificare che ci sia). Fatto tutto ciò, possiamo definire tre variabili per conservare il titolo dell'item, il link e la descrizione del link.
for(var i=0,j=results.length;i<j;i++){
item = document.createElement('li');
link = document.createElement('a');
link.setAttribute('href',results[i].clickurl);
link.innerHTML = results[i].title;
item.appendChild(link);
description = document.createElement('p');
description.innerHTML = results[i]['abstract'];
item.appendChild(description);
list.appendChild(item);
}
Poi facciamo un loop sull'array dei risultati e mettiamo insieme una lista con i titoli sotto forma di link e un paragrafo con il sommario. Notate come abbiamo definito abstract (è una parola riservata in Javascript2).
} else {
list = document.createElement('p');
list.appendChild(document.createTextNode(config.noresults));
}
form.replaceChild(list,out);
out = list;
};
Se non ci sono risultati, definiamo un paragrafo con un messaggio di avviso come list. In ogni caso rimpiazziamo il vecchio out (il messaggio di caricamento) con list e ridefiniamo out come list.
return{
config:config,
init:init,
found:found
};
}();
Ciò che rimane da fare è fare un return per le proprietà e i metodi che vogliamo rendere pubblici. In questo caso found deve essere pubblico perché ad esso accede quanto restituito dalle API di BOSS. Facciamo un return per init per renderlo accessibile e per config per consentire agli implementatori di fare l'override di queste proprietà.
Per usare questo script dovrete solo aggiungerlo dopo il form definito nel documento, sostituire la API key con la vostra e richiamare init():
<form id="customsearch" action="http://search.yahoo.com/search"> <div> <label for="p">Search this site:</label> <input type="text" name="p" id="term"> <input type="hidden" name="vs" id="site" value="bbc.co.uk"> <input type="submit" value="go"> </div> </form> <script type="text/javascript" src="boss-site-search.js"></script> <script type="text/javascript"> SITESEARCH.config.appID = 'copy-the-id-you-know-to-get-where'; SITESEARCH.init(); </script>
Questo è solo un semplice esempio di ciò che è possibile fare con BOSS. Potete definire linguaggi e regioni, rintracciare e mostrare immagini e news, mixare i risultati con altre fonti di dati prima di visualizzarli. Una funzionalità molto interessante è che aggiungendo un parametro view=keyterms all'URL potete ottenere le keywords di ciascun risultato per andare ancora più a fondo con la ricerca. Un esempio di questo approccio in PHP è disponibile su Yahoo Developer Network. Per Javascript c'è una soluzione chiamata yboss a vostra disposizione.
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |