嘿,
感谢这个新功能,看起来很棒!
我一直在尝试设置完整应用嵌入(Full App Embed),一切都运行正常,包括登录。
唯一的问题是,当我点击“回复”时,没有任何反应——编辑器/文本区域没有显示出来。
我甚至在浏览器控制台中也没有看到任何相关的错误。
是不是我的配置漏掉了什么?
谢谢!
嘿,
感谢这个新功能,看起来很棒!
我一直在尝试设置完整应用嵌入(Full App Embed),一切都运行正常,包括登录。
唯一的问题是,当我点击“回复”时,没有任何反应——编辑器/文本区域没有显示出来。
我甚至在浏览器控制台中也没有看到任何相关的错误。
是不是我的配置漏掉了什么?
谢谢!
所以在差点搞坏我的电脑之后,我找到了一个变通方案——可能不是最理想的 ![]()
看起来,当在全应用嵌入(Full App Embed)中点击“回复”时,编辑器实际上在 DOM 中正确打开了(#reply-control.open),但由于某种原因,它仍然保持 display: none 状态。
我在浏览器控制台中确认了这一点:编辑器确实存在,但其计算后的 display 值为 “none”。手动执行以下代码:
document.querySelector('#reply-control').style.setProperty('display', 'block', 'important');
立即让编辑器显示出来,并且一切恢复正常。
作为变通方案,将以下 JS 添加到 Discourse 主题中就可以解决我的问题:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
if (!document.body.classList.contains("embed-mode")) {
return;
}
const fixComposer = () => {
const composer = document.querySelector("#reply-control.open");
if (composer) {
composer.style.setProperty("display", "block", "important");
}
};
const observer = new MutationObserver(fixComposer);
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ["class"],
});
fixComposer();
});
这似乎能完全修复问题,并且我将该变通方案限制在 embed-mode 中,以免影响正常的 Discourse 界面。
显然,这可能不是理想的长期解决方案,但希望这有助于找出是什么导致在全应用嵌入中打开的编辑器保持 display: none 状态。
鉴于此问题并未出现在 AMD: Building One Developer Community 上,这可能是您这边的问题。