你好 @david,有什么办法可以在 head_tag.html 的脚本中显示模态框吗?谢谢。
技术上讲,你可以通过大量的 hack 来实现,但不推荐这样做。
相反,你应该使用插件 API 进行扩展,然后从该代码中触发模态框。你能详细解释一下你正在尝试做什么吗?你是否已经解决了这个问题?
Sam您好,我有一个类似的问题。
对于我们的网站,我们只使用了 head_tag 来进行自定义。之前,我们使用 magnific 和 jQuery 以及 iframe 来用来自不同域的可交互列表项填充模态框,但我们认为 Discourse 最近终于正式放弃了 magnific/jQuery,因为点击相同的链接没有任何反应(控制台中也没有任何内容)。
所以我在寻找下一个最佳方案。您能确认使用 DModal 是最适合我需求的方案吗?任何帮助都将非常有益!
这是我们过去用来附加 magnific 弹出触发器的一些代码。
if (window.jQuery) {
const $document = $(document)
$document.on('click', '.otpc-magnific-trigger', function() {
var $button = $(this)
if ($button.hasClass('initialized')) {
$button.magnificPopup('open')
} else {
$button.magnificPopup({
type: 'inline',
preloader: false
})
$button.magnificPopup('open')
$button.addClass('initialized')
}
return false
})
您好 Brandon,
通常我们建议避免使用“head 标签”进行任何复杂的自定义。您应该考虑设置一个基于 Git 的主题。
一旦您设置好了,那么是的,DModal 可能是您需要的。我们这里有一些关于它的文档:
您好 David,感谢您的回复。
我们确实有一个基于 Git 的自定义主题,主要在 head_tag.html 中修改我们的 JavaScript;如果之前不够清楚,我很抱歉。我们一直使用 script 标签来处理任何 Handlebars 模板,但我看到建议为某些连接器模板使用专用文件。
您能确认 magnific 不再兼容 Discourse 吗?我正在尝试确定导致我们弹出窗口功能中断的原因。
我不知道 magnificPopup 有任何变化,但我们确实计划很快将其移除,因此我建议改用已记录的 DModal API。
最近发生的一项变化是我们加载 JQuery 的方式。它现在在启动过程的稍后阶段可用。因此,window.JQuery 可能在 Discourse 启动后才能使用。
您可以通过将 <script> 切换为 Discourse 的“插件初始化程序”来使脚本在启动后运行:
<script type="text/discourse-plugin" version="0.8">