2012-09-13 15 views
5

Ho appena creato un portfolio di immagini con una singola pagina HTML in cui tutte le immagini sono caricate dinamicamente. Tutto funziona alla grande finora, ad eccezione di facebook META OG: IMMAGINE.Modifica del valore di OG: IMMAGINE con jQuery clic

Poiché la pagina viene caricata solo una volta, posso assegnare la OG: URL dell'immagine una volta ... Ma mi piacerebbe davvero avere ogni immagine con il proprio OG: IMAGE, poiché si tratta di un album di foto.

Le immagini vengono caricate facendo clic su --li class = "open-pic" - tag. Vorrei cambiare il valore OG: IMAGE ogni volta che clicco su un --li class = "open-pic" - tag.

È possibile? Ho trovato cose come questa:

$('meta[name=og\\:image]').attr('content', newImageUrl); 

Tuttavia, non so come collegare questo per l'evento onclick li.open-pic. Grazie!

G.

risposta

3
$('li.open-pic').click(function(){ 
$('meta[name=og\\:image]').attr('content', newImageUrl); 
}); 
+1

Ouch ... Così semplice. Mi vergogno di me stesso. Grazie mille. – Cospefogo

+1

non c'è bisogno di thankx :) .. per favore non dimenticare di contrassegnare come risposta o upvote se questo ha aiutato. questo potrebbe aiutare anche gli altri –

+0

Credo che questo non funzioni ... si cambierà il valore del meta tag ... ma è inutile perché facebook mostrerà comunque l'immagine originale che è stata registrata nel meta tag ... vedi Risposta di CBroe ... – dsdsdsdsd

14

Poiché la pagina viene caricata solo una volta, posso assegnare il OG: URL dell'immagine una volta ... Ma mi piacerebbe davvero avere ogni immagine con il proprio OG: IMAGE, poiché questo è un album fotografico.

Modifica Olimpiadi meta tag lato client è di alcuna utilità reale - perché Facebook leggerà questi tag attraverso la sua ruspa, il che significa che faranno una richiesta HTTP per il tuo URL e vedere cosa c'è nel codice HTML; e il raschietto non esegue alcun JavaScript.

Soluzione: fornire un singolo URL per ogni foto con le proprie meta informazioni e avere il pulsante/funzionalità di condivisione/qualsiasi funzione FB puntare a quell'URL per ciascuna foto.

(Come gestire le cose lato client non importa - è ancora possibile visualizzare tutte le immagini in una pagina, caricare nuovi contenuti tramite la tecnologia AJAX, quello che vuoi - ma si sarà bisogno di URL separati per le tue foto perché possano essere riconosciuti come oggetti Open Graph individuali.)

+1

Grazie mille, CBroe! Apprezzo molto il tuo chiarimento. Sto lavorando su un ambiente wordpress e, dopo tutto, creerò una singola pagina per ogni immagine: non c'è via di fuga da ciò. – Cospefogo

3

Sono i due punti. Prova a usare la virgoletta singola & doppi apici come questo:

var imgSrc = $(this).find('img').attr('src'); // image stored as variable 
$('meta[property="og:image"]').attr('content', imgSrc); // assigns meta property 
Problemi correlati