Webdatenbanken
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
<code id="5b1e8ed6f0383" hidden>
var KEY = "9258151-9b5330066ed2372ad80530c44";
function pixabaySuche(q,callback){
var r = localStorage.getItem("PBC_"+q);
if(r) { callback(JSON.parse(r)); return;}
$.getJSON("https://pixabay.com/api?key="+KEY+"&q="+encodeURIComponent(q),function(results){
localStorage.setItem("PBC_"+q,JSON.stringify(results));
callback(results);
});
}
</code>
Dieses Beispiel verwendet die Pixabay.com API, um nach Bildern zu suchen. Du kannst beliebige Suchbegriffe statt "Ente" eingeben. Die Funktion liefert ein JavaScript-Objekt mit einer Liste von "hits" zurück. In der [https://pixabay.com/api/docs/ Dokumentation] von Pixabay kannst du mehr erfahren.
<run id="5b1e8ed6f03f3">
function bilderAnzeigen (bilder){
for(var i=0; i < bilder.hits.length; i++){
var bild = $('<img style="height:100px" src="'+bilder.hits[i].largeImageURL+'">');
$('#bilderAusgabe').append(bild);
}
}
$('#bilderAusgabe').html(""); // Anzeigefeld leeren
pixabaySuche("Ente",bilderAnzeigen);
</run>
<html>
<style>
#bilderAusgabe > img {
height:100px;
}
</style>
<div style="padding:8px;border:1px solid #ccc">
<div>#bilderAusgabe</div>
<div id="bilderAusgabe">
</div>
</div>
</html>
Im vorherigen Beispiel wurden einfach alle gefundenen Bilder nebeneinander als img Elemente gelegt. Diesmal sollen detaillierte Informationen zu jedem Bild angezeigt werden:
<run id="5b1e934718198">
function bilderDetailsAnzeigen(bilder){
for(var i=0; i < bilder.hits.length; i++){
var bild = $('<div style="margin:1em;border:1px solid blue;padding:8px">'+
'<img style="height:200px" src="'+bilder.hits[i].largeImageURL+'">'+
'<table></table>'+
'</div>');
// alle Eigenschaften auflisten, die Pixbay liefert
for(var p in bilder.hits[i]){
$("table",bild).append($('<tr><td><b>'+p+':</b></td><td>'+bilder.hits[i][p]+'</td></tr>'));
}
$('#bilderAusgabeDetail').append(bild);
}
}
$('#bilderAusgabeDetail').html(""); // Anzeigefeld leeren
pixabaySuche("Ente",bilderDetailsAnzeigen);
</run>
<html>
<div style="padding:8px;border:1px solid #ccc">
<div>#bilderAusgabeDetail</div>
<div id="bilderAusgabeDetail">
</div>
</div>
</html>