2015-04-13 13 views
6

Il sito Web a pagina singola contiene alcuni prodotti e i dettagli del prodotto vengono visualizzati come semplici popup quando si fa clic. Per ogni prodotto c'è la condivisione di Facebook. Ma quando condivido l'url Facebook, dico www.example.com#product1 nell'URL condiviso, lo #product1 viene rimosso.URL di condivisione di Facebook con hash

FB.ui({ 
    method: 'share', 
    href: 'http://example.com/#product1', 
}, function(response){}); 

Quando condivido Essa si presenta come unica http://example.com/, non http://example.com/#product1. Voglio che l'intero URL sia condiviso come http://example.com/#product1. Si è spogliato in qualche modo.

Come evitare questo?

+0

Si prega di fornire anche qualche pezzo di codice. –

+1

È necessario un singolo URL per ogni singolo contenuto che si desidera condividere. (Un diverso hash non li rende URL diversi, l'hash è un costrutto puramente client-side.) – CBroe

+0

@sasha: Non penso di aver bisogno di codice per spiegare. Quando condivido l'url in facebook ho bisogno di questo www.example.com # product1. Ma questo viene solo come www.example.com. Il # prodotto1 viene rimosso quando è condiviso in Facebook. – noob

risposta

4

Come menzionato da CBroe, Facebook indicizza gli URL e lo # non è considerato parte dell'URL.

Una soluzione è utilizzare la notazione "hashbang" #!. Facebook segue lo standard Google Ajax Specification per consentire l'indicizzazione, in questo caso, dei siti Web Ajax.

L'effetto è che http://www.example.com/#!/product1 verrà riscritto e invece la query sul server diventa http://www.example.com/?_escaped_fragment_=/product1. A sua volta, puoi prenderlo sul tuo server e rispondere con una pagina dedicata a quel prodotto.

Si può leggere una risposta più elaborata qui: https://stackoverflow.com/a/15024853/561485

La parte più importante è che il vostro sito web dovrebbe essere in grado di fornire le pagine dedicate per ciascun prodotto; se si dispone solo di pagine indice, la notazione # condividerà sempre lo stesso URL.

+0

Se condividi un URL su Facebook con un identificatore di frammento (la parte che segue #), Facebook lo mantiene. – Flimm

1

Ora Facebook e Twitter non consentono la condivisione di URL contenenti il ​​tag #. Tuttavia è possibile condividere URL utilizzando %23 invece di #

<a class="twitter-share" href="https://twitter.com/intent/tweet?url=http://www.goparties.com/%23/party/{{id}}" target="_blank"> 
+0

Se condividi un URL su Facebook con un identificatore di frammento (la parte che segue #), Facebook lo mantiene. – Flimm

+0

Non ha funzionato per me. Ho pensato esattamente la stessa cosa, ma purtroppo non è un modo per farlo :( –

0

dipende dalle esigenze e come è in corso di attuazione, può essere fatto utilizzando un API goo.gl per generare un link condivisibile unico.

due modalità di esecuzione è la seguente: 1. manualmente, basta andare a goo.gl e pubblicare il tuo link completo compreso #hash_tag (sarà condivisibile tramite Facebook) 2. Utilizzo di API per le attività di condivisione automatizzati. .. come l'applicazione ecc., utilizzando l'API più breve goo.gl url.

1

Si può anche sfuggire l'url con encodeURIComponent

FB.ui({ 
    method: 'share', 
    href: encodeURIComponent('http://example.com/#product1'), 
}, function(response){}); 
Problemi correlati