6

Quiero cambiar dinámicamente el data-href para el complemento de comentarios fb a continuación basado en una variable de JavaScript. Estoy ejecutando un archivo flash swf y estoy pasando el nuevo enlace de datos-href en el contenedor html a través de una función de JavaScript. Cuando lo hago, quiero que el complemento de comentarios de fb se actualice al nuevo enlace de datos-href.¿Cómo cambiar dinámicamente la URL del complemento de comentarios de Facebook en función de la variable de JavaScript?

<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 

Llamado función javascript que pasa en el nuevo enlace de la observaciones plugin:

function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
} 

Respuesta

12

Esto cargará el apartado de comentarios inicial, será cuando se ejecuta la secuencia de comandos se borrará la envoltura comentarios div y reemplazar comentarios html5 caja con nueva url. JS SDK luego analizará el nuevo cuadro.

Se requiere JS SDK para este trabajo. consulte https://developers.facebook.com/docs/reference/javascript/

solución para XFBML render de manipulación del DOM


<div id="comments"> 
<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 
</div> 
<script> 
function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
document.getElementById('comments').innerHTML=''; 
parser=document.getElementById('comments'); 
parser.innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(parser); 
} 
</script> 

usuario resuelto:

document.getElementById('comments').innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+link+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(document.getElementById('comments')); 

+1

Agregó el código, pero cuando se ejecuta el script, borra el cuadro de comentarios, pero el nuevo cuadro de comentarios no aparece. Tengo el JS SDK cargado. – Steven

+0

hay un error en la renderización de innerHTML, he editado en una solución en la parte superior y lo he probado aquí http://anotherfeed.com/login.php, hay 2 enlaces en la página url 1 y url 2, cambiarán y mostrarán el cuadro de comentarios. –

+1

Gracias, edité el código eliminando la variable del analizador y funcionó. Parece que tu código editado debería funcionar también. document.getElementById ('comments'). innerHTML = '

'; \t FB.XFBML.parse (document.getElementById ('comments')); – Steven

2

He encontrado la manera más simple y eficaz para hacer su Cuadro de comentario de Facebook para reconocer Niza la URL individual de cada página (particularmente útil para sitios de comercio electrónico).

Añadir este script a su porción de cabecera superior de la plantilla de página web (que genera el valor de los datos-href para su comentario a la caja div:

<script type="text/javascript" language="javascript">jQuery(“#FC”).attr(“data-href”, window.location.href.split(‘?’)[0]);</script> 

Y luego en su div comentario de cuadro, añadir el identificador de la valor generado en la javascript:.

<div id="FC" class="fb-comments" data-href="" data-width="700" data-numposts="5" data-colorscheme="light"> 

Voilá que dedica tanto tiempo a romper esta nuez, sólo tenía que compartirla para que usted pueda ahorrar algo de tiempo para BRE ¡Alaska! ¡Salud!

Cuestiones relacionadas