# Incrustar comentarios de Discourse en otro sitio web mediante Javascript

**URL:** <https://meta.discourse.org/t/embed-discourse-comments-on-another-website-via-javascript/31963>\
**Category:** Integrations\
**Tags:** embedding, how-to\
**Created:** [10 Agosto, 2015 18:20 UTC](https://meta.discourse.org/t/embed-discourse-comments-on-another-website-via-javascript/31963 "2015-08-10T18:20:46Z")\
**Posts on this page:** 1\
**Showing post:** 462

<div class="post-metadata">

**Author:** ![henvo](https://avatars.discourse-cdn.com/v4/letter/h/dfb087/32.png) [@henvo](https://meta.discourse.org/u/henvo)\
**Post date:** [24 Mayo, 2024 17:23 UTC](https://meta.discourse.org/t/embed-discourse-comments-on-another-website-via-javascript/31963/462 "2024-05-24T17:23:39Z")

</div>

Intenté implementar esto hoy, pero tengo algunos problemas:

- En la publicación del foro, la URL derivada (¿de discourseEmbedUrl?) se convierte a minúsculas, rompiendo las URL que distinguen mayúsculas y minúsculas en el enlace que sigue al texto “Este es un tema de discusión complementario para la entrada original en…”
- En la primera carga de página, el embed dice “Cargando discusión…” y se cuelga. En la segunda carga de página, todo funciona.
- Paginación: cuando el iframe se está cargando, tendrá una altura predeterminada, pero si no se encuentran comentarios, la altura se reduce para mostrar solo una línea con “Iniciar discusión”. Esto empeora el error de “cargando discusión”, ya que mantiene una gran altura vertical abierta.
- Sería bueno si los datos extraídos del padre del embed pudieran favorecer una etiqueta meta en lugar de convertir toda la página en texto, supongo que este es un comportamiento más general de Discourse.

La mayor sorpresa fue descubrir que cada vez que _visitas_ una URL con un embed, se crea un nuevo tema. Esto está en el OP:

> [@eviltrout](#):
>
> la primera vez que visitas `http://example.com/blog/entry-123.html` intentará cargar los comentarios de la publicación del blog. Como no hay ninguno, le dirá al foro de Discourse que cree un nuevo tema en segundo plano.

La única solución que se me ocurre es un truco, que depende del SSR/caché a corto plazo para hacer ping al punto final del embed:

> [@eviltrout](#):
>
> Tenemos un punto final de API para consultar los detalles del Embed usando el embed\_url como parámetro:

así que creo que la lógica sería:

1. comprueba `$discourse/embed/info?embed_url=$link`

2. si el tema existe, muestra el embed como de costumbre.

3. si no, muestra un botón “iniciar conversación” que enlaza a `$discourse/new-topic?subject=$link`.

¿Funcionaría eso, o hay algún otro enlace que deba tener lugar?

---

_[View the full topic](https://meta.discourse.org/t/embed-discourse-comments-on-another-website-via-javascript/31963)._
