javascript - not - share link facebook developer
facebook javascript sdk fb_xd_fragment? (9)
Después de muchas semanas de intentar encontrar una solución, parece que lo que se necesita es una url de canal personalizada como se menciona aquí:
http://developers.facebook.com/docs/reference/javascript/FB.init
Todo lo que hice fue crear el archivo channel.html que contiene esta única línea:
<script src="http://connect.facebook.net/en_US/all.js"></script>
Luego agregué la línea channelUrl: para que el resultado final se vea así:
<div id="fb-root"></div> <script>
window.fbAsyncInit = function() {
FB.init({
appId : ''MY APP ID'',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : ''http://www.example.com/channel.html'' // custom channel
}); };
(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>
Asegúrese de agregar una coma después de xfbml: verdadero si fue su última línea. No estoy familiarizado con Javascript, así que no sé si estoy aprovechando al máximo esto, pero sé que previene el problema de fb_xd_fragment y permite los comentarios de FB en IE. Por lo que puedo decir, esta es la ÚNICA solución disponible en línea. Cualquier otro ajuste es bienvenido.
Estoy usando facebook javascript sdk para insertar un botón me gusta en mi página.
¿Qué es fb_xd_fragment? Veo que se agrega al final de mi url como http://www.example.com/controller/?fb_xd_fragment , y esto está causando una desagradable recarga recursiva de la página.
La solución para este error se puede encontrar aquí:
http://wiki.github.com/facebook/connect-js/custom-channel-url
Aunque la respuesta anterior de github parece ser una respuesta a otra pregunta, funciona bien. ACTUALIZACIÓN: el enlace está roto - intente http://blog.colnect.com/2010/10/fbxdfragment-bug-workaround.html
El enlace de a1anm es bueno para limpiar el lío que esto causa, pero hay una manera de evitar que esto suceda.
Establezca ''channelUrl'' en una página de canal alojada localmente. Ver http://threebrothers.org/brendan/blog/facebook-connect-ie-fb_xd_fragment-iframe/ para más detalles.
después de algunos días de investigación y experimento con toda la solución en Internet, por fin se me ocurre una combinación de esto
Cambia el encabezado de tu página:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en-US">
aquí el cocde pone esto donde quieras, como su botón es:
<div class="yourclass" style="z-index: 10;">
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js" ></script>
<script>FB.init({appId: ''1234yourappidhere'', status: true, cookie: true, xfbml: true});</script>
<fb:like href="http..yourencodedurlswillputhere" layout="button_count" width="150" action="recommend" colorscheme="light"></fb:like></div>
<script> document.getElementsByTagName(''html'')[0].style.display=''block'';</script>
crédito bienvenido: http://www.xaluan.com
El error y la corrección ahora están documentados en http://developers.facebook.com/docs/reference/javascript/fb.init/
El hack Channel no funcionó para mí. Así que acabo de agregar sobre todo el resto del contenido de mi archivo PHP algún código que 301 redirija a la URL sin la adición de fb_xd_fragment:
$url = "http://".$_SERVER[''SERVER_NAME''].$_SERVER[''REQUEST_URI''];
if (isset($_GET[''fb_xd_fragment''])) {
$url = str_replace("?fb_xd_fragment=","",$url);
header( "HTTP/1.1 301 Moved Permanently" );
header("Location: {$url}");
exit();
}
Resuelto con el botón iframe like.
Utilicé el enfoque dentro del script para definir el channelUrl en una página de mi sitio, pero todavía recibí múltiples visitas a esa página.
Después de ver el tráfico resultante con WireShark, noté que ellos (Facebook) usaban un canalUrl para algunas de sus llamadas internas, pasando también fb_xd_fragment. En su lugar, usé esa URL para channelUrl, redirigiéndola fuera de mi sitio.
Tengo varios botones Me gusta en mi sitio usando fbml en lugar de marcos, y en IE7, ya no recibo un golpe de Facebook con el parámetro fb_xd_fragment.
No estoy seguro de si esto es una buena práctica, pero parece funcionar.
Establecí este valor para channelUrl:
''http://static.ak.fbcdn.net/connect/xd_proxy.php''
Espero que esto ayude.