2012-02-15 19 views
9

Sto solo cercando di caricare la pagina di condivisione di Facebook in un iframe che si trova in una posizione posizionata senza successo.Carica Facebook Sharer in iFrame

Ecco il codice che sto utilizzando per l'iframe,

<iframe src="http://www.facebook.com/sharer.php?u=http://www.website.com&t=Title Hoes Here"></iframe> 

Quando osservo la sua pagina vuota e la sorgente iframe è

<iframe src="http://www.facebook.com/sharer.php?u=http://www.website.com&t=Title Hoes Here"> 
<html> 
<body></body> 
</html> 
</iframe> 

Se visualizzo direttamente l'url, tutto appare correttamente.

Facebook blocca il caricamento del condivisore in un iFrame? e quali sono le mie alternative per far comparire Facebook Sharer in una finestra modale?

Grazie

+0

Non si dovrebbe utilizzare una funzione deprecata in un nuovo sviluppo. Non è supportato e verrà ritirato da noi in qualsiasi momento. Per favore vedi: https://developers.facebook.com/docs/share/ per maggiori informazioni su cosa dovresti fare. – DMCS

risposta

7

Sì, Facebook praticamente di tutti i blocchi di carico di schermi all'interno di iframe.

Se si utilizza Facebook connect, è possibile eseguire alcuni semplici metodi javascript per ottenere una finestra di dialogo sulla propria pagina e per avviare Facebook si prenderà molto del lavoro necessario per rendere lo schermo piacevole.

Vedi questo link (http://developers.facebook.com/docs/reference/javascript/FB.ui/) o utilizzare il codice qui sotto:

FB.ui(
    { 
    method: 'feed', 
    name: 'Facebook Dialogs', 
    link: 'http://developers.facebook.com/docs/reference/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'Reference Documentation', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    } 
); 

Se non si utilizza Facebook connect allora davvero l'unica opzione per ottenere quello schermo esatto è quello di gettare un pop-up.

Un'altra opzione consiste nell'utilizzare il plug-in di pulsante Invia/Invia, non è la stessa funzionalità ma è più facile da integrare. http://developers.facebook.com/docs/plugins/

Cheers!

+3

F @ # $ facebook, twitter, link in, pinterest e tutto il resto che vogliono spiare i tuoi utenti e far caricare le pagine lentamente. Nessuno di questi consente di caricare i propri file solo se l'utente desidera utilizzare il servizio. Volevo che fosse bello in un iFrame ma non lo permetteranno. Google Plus è l'unico che consentirà un iframe. – pathfinder

+0

@pathfinder: Sì, ha effettuato anche alcune ricerche e caricato il cestino dei social media solo quando l'utente ha fatto clic su di esso. Su questo sito http://meezingeninrotterdam.nl (di cui è ora l'evento è chiuso) puoi vedere come l'ho fatto. Clicca sull'icona di Facebook, ad esempio, ti chiederà di confermare i cookie di terze parti. Dopo questo, il plugin addth verrà caricato se si decide di continuare. Questo metodo salva l'utente molto del traffico e gli utenti possono essere seguiti solo quando hai accettato la finestra di dialogo dei cookie di terze parti. Questo metodo ti consente inoltre di aggiungere un banner dei cookie per TUTTI gli utenti sulla pagina. – Codebeat

0
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> 

La riga in alto nella testa.

<div id="fb-root"></div> 
<script> 
window.fbAsyncInit = function() { 
FB.init({ 
appId : '', 
status : true, // check login status 
cookie : true, // enable cookies to allow the server to access the session 
xfbml : true // parse XFBML 
}); 
}; 

(function() { 
var e = document.createElement('script'); 
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
e.async = true; 
document.getElementById('fb-root').appendChild(e); 
}()); 

</script> 

<script> 
$(document).ready(function(){ 
$('#share_button').live('click', function(e){ 
e.preventDefault(); 
FB.ui(
{ 

method: 'feed', 
name: '', 
link: '', 
picture: '', 
caption: '', 
description: '', 
message: '' 
}); 
}); 
}); 
</script> 
Problemi correlati