链接在新标签页中无法打开

设置正确:

但是外部链接在同一标签页中打开。

这是个错误吗?

您是用您的个人偏好覆盖它吗?

2 个赞

供参考,该设置位于“偏好设置” > “界面” > “在新的标签页中打开所有外部链接” :+1:

1 个赞

它也将在新标签页中打开:

如果您在此处(Meta)更改偏好设置并重新加载网站,它在这个论坛上的运行是否符合您的预期?

1 个赞

是的,我刚在这里的偏好设置中设置了它,它在一个新标签页中打开了一个外部链接。

那么这似乎不是 Discourse 中的错误。

您的论坛有什么特殊之处吗?您尝试过安全模式吗?是否有插件可能导致这种情况?

没什么特别的。在 Hostinger Ubuntu 上自托管。我也禁用了所有插件。我将尝试安全模式。

对于遇到此问题的其他人,这是修复方法。只需创建一个主题组件,并将以下代码添加到 js 部分:

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("1.8.0", (api) => {
  api.decorateCookedElement(
    (element) => {
      element.querySelectorAll("a[href^='http']").forEach((link) => {
        if (link.hostname !== window.location.hostname) {
          link.target = "_blank";
          link.rel = "noopener noreferrer";
        }
      });
    },
    { id: "external-links-new-tab" }
  );
});