Ayuda para bloquear ventanas emergentes de Javascript

Hola, no sé mucho de JavaScript y traté de usar ChatGPT para generar un script que permita que los elementos en un campo muestren un bloque emergente con información al ser clickeados. Los elementos están en una tabla, por si esa información es necesaria.

// Obtener el elemento de la tabla
const tableElement = document.querySelector("table");

// Agregar un detector de eventos de clic a la tabla
tableElement.addEventListener("click", function(event) {
  // Obtener el elemento en el que se hizo clic
  const clickedElement = event.target;

  // Solo hacer algo si el elemento clickeado es un td
  if (clickedElement.tagName === "TD") {
    // Crear el elemento emergente y agregarlo a la página
    const popup = document.createElement("div");
    popup.classList.add("popup");
    popup.innerHTML = "¡Este es el contenido emergente!";
    document.body.appendChild(popup);

    // Posicionar el emergente junto al elemento clickeado
    const rect = clickedElement.getBoundingClientRect();
    popup.style.top = `${rect.top + window.scrollY + 10}px`;
    popup.style.left = `${rect.left + window.scrollX + 10}px`;
  }
});

Creó esto, pero al probarlo no funciona. ¿Alguna ayuda con lo que está mal?

Discourse es una aplicación compleja de JavaScript y lograr algo como esto es probablemente más complicado que con JS directo… probablemente necesitarás más ayuda de la que ChatGPT puede ofrecer, ¡y no estoy seguro de que obtengas ese nivel de soporte gratis aquí!

Dicho esto, antes de que alguien pueda darte consejos aquí, necesitaremos saber más sobre lo que intentas lograr. ¿Dónde se encuentra esta tabla en Discourse? ¿Dentro de una publicación? ¿En otro lugar? ¿Qué información contendría este bloque?

4 Me gusta

Creo que eso es correcto, pero he estado pensando en esto (sin mirar realmente ningún código), y creo que Discourse Translator hace algo muy similar. Creo que ahí es por dónde empezar, pero “Oye, así que realmente no sé mucho de javascript” probablemente no sea el nivel de habilidad que necesitas para lograrlo.

Supongo que alguien familiarizado con la escritura de plugins necesitará entre 5 y 10 horas (pero quizás 2 para una prueba de concepto).

2 Me gusta

Está bien, jajaja.
La tabla en Discourse se encuentra “Debajo del encabezado”, en la página principal. Planeo introducir manualmente varios textos enlazados en los cuadros. Avísame si necesitas más información.