嵌入 Discourse 评论 *不* 使用 Javascript

这里有一篇关于如何通过 Embed Discourse comments on another website via Javascript 嵌入评论的优秀帖子。不过,有些社区的网站访问者可能未启用 JavaScript。若非如此,我认为从 SEO 的角度来看,应当有一种无需 JavaScript 即可嵌入网站评论的方法。

经过一番尝试,我发现其实可以用一种更简单的方式轻松实现,完全不需要 JavaScript。只需遵循以下步骤:

<iframe id="discourse-embed-frame" scrolling="no" referrerpolicy="no-referrer-when-downgrade" 
src="https://<DISCOURSE_URL>/embed/comments/?embed_url=<WEBSITE_PAGE_URL>%2F&amp;discourse_username=system" 
width="100%" height="3271px" frameborder="0"></iframe>

例如:

<iframe src="https://meta.discourse.org/embed/comments?embed_url=https%3A%2F%2Fblog.discourse.org%2F2021%2F05%2Fdiscord-and-discourse-better-together%2F&amp;discourse_username=rishabh" 
id="discourse-embed-frame" scrolling="no" referrerpolicy="no-referrer-when-downgrade"
width="100%" height="3271px" frameborder="0"></iframe>

有什么理由会导致这种方法无法工作吗?

1 个赞

现代搜索引擎无法执行 JavaScript 是一种误解。由于使用了 JavaScript,嵌入功能更加强大,目前也没有计划添加替代方案。您可以自由使用 Discourse 的 API 在服务器端获取相同内容并以该方式渲染。

4 个赞

明白了。不过,根据我简单的测试,上述方法无需任何修改即可正常工作。我的问题源于我未曾考虑到的、可能导致其失效的潜在边缘情况。

是的,那是另一条途径。

您能举个例子吗?如果最终结果都是相同的 iframe,我看不出它们有何区别。

1 个赞

JavaScript 并非毫无作用。它用于自动调整大小和滚动,并通过查找可选参数提供更简便的 API。

这是唯一受支持的方式。如果您发现 <iframe> 能满足您的需求,可以以不受支持的方式使用它。

4 个赞