如何在页面标题的开头添加脚本?

我需要为现有的 Cookie 同意解决方案(由 consentmanager.net 提供)添加一个脚本。

它必须放置在页面标题的第一个整体元素处。
我尝试了管理员工具中的不同选项,在 HEAD、HEADER、AFTER HEAD、BODY 中。
但没有一个奏效。

放置在 HEAD 中,脚本会发布在标题项的中间,在一些 discourse 脚本和其他东西的下方。无论我选择哪个 Cookie 设置,它都会阻止其他自定义内容(此处:Font Awesome 图标),但仅此而已。

放置在 HEADER 中,根本没有功能。

放置在 AFTER HEAD 中,我在渲染的源代码中甚至找不到该脚本。

放置在 BODY 中(该位置有不同的脚本),它发布得太晚了,接近页面底部。但如果无法在标题中添加脚本,它应该放在 body 的最前面。

所以,实现我的小脚本完全没有成功。
有人能告诉我是否有机会将脚本添加到head 部分的开头吗?

提前非常感谢!

2 个赞

您好 @SchweizerSchoggi 我刚在我的网站上测试添加了来自 consentmanager.net 的 cookie 同意横幅,在使用“半自动阻止”选项卡中的脚本时,它运行正常。

如果您使用其他代码,它会阻止整个网站。您或许可以通过一些自定义 JavaScript 来插入脚本来解决这个问题,但使用其他代码片段会更简单。

2 个赞

谢谢 @cocococosti
是的,半自动屏蔽脚本可能是一个选项——但你把它放在 Discourse 管理的哪个位置呢?

我尝试将其插入到以下部分:
自定义 => 主题 => 编辑 CSS/HTML => Body

但这样插入得太晚了。它应该直接插入到 <body> 标签之后,但实际上它被插入到了 </body> 标签之前。

您必须将其添加到 Head 中:Customize => Theme => Edit CSS/HTML => Head

或者创建一个主题组件来添加脚本(添加到 Head 的过程相同),然后将其添加到您的主题中:Beginner's guide to using Discourse Themes

对我来说,在 HEAD 部分不起作用。两个部分似乎都不起作用,脚本集成得太晚了,无论是在 HEAD 还是 BODY 中 :frowning:

@SchweizerSchoggi 既然您是托管客户,如果您愿意,我可以登录您的网站进行查看。您能否给我发送一条私信并附上脚本代码?

1 个赞

在主题中添加 Cookie 同意脚本后,我检查了浏览器的控制台,发现 Cookie 同意管理器的多个脚本因内容安全策略被阻止。我将这些脚本添加到了 content security policy script src 站点设置中,现在 Cookie 同意横幅已正确显示。

4 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.