Javascript 弹出窗口阻止帮助

嘿,我对 JavaScript 不是很了解,并尝试使用 ChatGPT 生成一个脚本,该脚本允许表格中的元素在被点击时显示一个带有信息的弹出块。如果需要,这些元素就在一个表格中。

// 获取表格元素
const tableElement = document.querySelector("table");

// 向表格添加点击事件监听器
tableElement.addEventListener("click", function(event) {
  // 获取被点击的元素
  const clickedElement = event.target;

  // 仅当被点击的元素是 td 时才执行操作
  if (clickedElement.tagName === "TD") {
    // 创建弹出元素并将其添加到页面
    const popup = document.createElement("div");
    popup.classList.add("popup");
    popup.innerHTML = "这是弹出内容!";
    document.body.appendChild(popup);

    // 将弹出窗口定位在被点击元素的旁边
    const rect = clickedElement.getBoundingClientRect();
    popup.style.top = `${rect.top + window.scrollY + 10}px`;
    popup.style.left = `${rect.left + window.scrollX + 10}px`;
  }
});

它创建了这个,但在尝试时不起作用。有什么关于这个有什么问题的帮助吗?

Discourse 是一个复杂的 JavaScript 应用程序,要实现这样的功能可能比一些简单的 JS 要复杂得多……你可能需要比 ChatGPT 能提供的更多帮助,而且我不确定你是否能在这里获得免费的这种级别的支持!

话虽如此,在任何人能在这里给你建议之前,我们需要了解更多关于你想完成的事情。这个表格在 Discourse 的什么位置?在帖子中?还是其他地方?这个块中会包含什么信息?

4 个赞

我认为这是正确的,但我一直在考虑这个问题(没有真正查看任何代码),我认为 Discourse Translator 做了非常类似的事情。我认为这是起点,但“嘿,我真的不了解 JavaScript”可能不是你完成它所需的技能水平。

我猜一个熟悉编写插件的人需要 5-10 小时(但概念验证可能需要 2 小时)。

2 个赞

没关系,哈哈。
Discourse 中的表格位于主页的“标题下方”。我计划在框中手动输入多个链接文本。如果您需要任何其他信息,请告诉我。