2009-04-01 3 views
20

Nur versuchen, ein einfaches Kommentarformular in einem Blog zu kisten. Ich möchte den Gravatar des Benutzers laden (mit jQuery), wenn er dies in der E-Mail-Box schreibt.Lädt gravatar mit jquery

Wie kann ich das tun?

Antwort

48

Die Gravatar URL sieht wie folgt aus:

http://www.gravatar.com/avatar/<md5hashofemail> 

Here are the rest of the options for the URL.

Also alles, was Sie gehen zu müssen, ist zu tun, um eine Funktion namens md5 enthalten, die den MD5-Hash der E-Mail des Benutzers zurückgibt. Es gibt viele online, die das tun, aber ich glaube, https://github.com/blueimp/JavaScript-MD5/blob/master/README.md funktioniert gut. Danach wird nur tun:

// get the email 
var email = $('#email').val(); 
// -- maybe validate the email? 

// create a new image with the src pointing to the user's gravatar 
var gravatar = $('<img>').attr({src: 'http://www.gravatar.com/avatar/' + md5(email)}); 
// append this new image to some div, or whatever 
$('#my_whatever').append(gravatar); 

// OR, simply modify the source of an image already on the page 
$('#image').attr('src', 'http://www.gravatar.com/avatar/' + md5(email)); 

Ich dachte, das war offensichtlich, aber ich werde es aus Gründen der Nachwelt hinzufügen:

Wenn Benutzer E-Mails privat sind und Sie diese ala-Stackoverflow in einer Auflistung sind zeigt, Sie sollten die E-Mail auf dem Server wahrscheinlich besser verschlüsseln, damit Benutzer-E-Mails nicht öffentlich sichtbar sind, wenn Sie sich die Quelle ansehen.

+3

Ich werde Sie retten ein Google-Suche: http://www.webtoolkit.info/javascript-md5.html –

+1

so gibt es ein Problem mit der Verwendung von Javascript, um gravatars zu laden, weil es nicht eine gute Idee, Ihre Benutzer E-Mail-und MD5-Hash-Clients –

+0

@Sander Versluys ausgeben : Es gibt keine Probleme, wenn Sie es einfach aus der Textbox laden, wenn der Benutzer seine E-Mail-Adresse eingibt. –

4

Check-out my fiddle die Funktion bereitstellt

get_gravatar_image_url (email, size, default_image, allowed_rating, force_default) 

Nur die E-Mail-Bereitstellung ist obligatorisch - der Rest Standardwerte verwendet.

Seien Sie sicher, gehören auch die de-facto-Standard MD5-generator JS file von Joseph Myers mit

<script src="http://www.myersdaily.org/joseph/javascript/md5.js"></script> 
+0

Ich habe versucht, dass Fiddler und nicht funktioniert . – erm3nda

1

Wow Dank für diesen Beitrag. Aber wenn Sie ein eigenes leeres Bild haben und es anstelle des Gravatar verwenden möchten.

0

Der schwierige Teil ist die Generierung der URL mit einer MD5-Hash-Implementierung, die von jQuery getrennt ist. Ich fand, dass die blueimp-md5 Bibliothek die meisten Sterne der verschiedenen MD5-Pakete auf GitHub hat, und es ist ziemlich selbstständig (ungefähr 6kb verkleinert). Wenn Sie Knoten und/oder Browserify verwenden, kann diese Lösung auch für Sie arbeiten:

var md5 = require("blueimp-md5"); 
function gravatar(email){ 
    var base = "http://www.gravatar.com/avatar/"; 
    var hash = md5(email.trim().toLowerCase()); 
    return base + hash; 
} 

Dann können Sie ein Bild gesetzt src Attribut mit jQuery wie folgt aus:

var email = "[email protected]"; 
$("#image").attr("src", gravatar(email));