跳转至主要内容

Ghost 进阶

Ghost 网站实现默认在新窗口中打开链接并排除 Portal 和锚点跳转

优点

在博客上添加新窗口中打开链接功能,有助于保留当前页面的阅读进度,避免因为直接跳转影响当前页面的阅读;同时还能增加网站的停留时间,降低跳出率。

添加方法

在 Ghost 后台 Settings ~ Advanced ~ Code injection,点击 Open

在 Site footer 中粘贴以下代码,点击 Save 即可:

Code injection Site Footer JavaScript

排除了包含 # 的链接,这样注册登录的 Portal 以及锚点跳转不会在新窗口打开。

<script>
  window.addEventListener("load", () => {
    document.querySelectorAll('a').forEach(link => {
      if (!link.href.includes('#')) {
        link.target = '_blank';
      }
    });
  })
</script>

仅针对外部链接

如果你想只对外部链接添加新窗口中打开,对于网站内部的链接直接打开,可以使用:

<script>
  window.addEventListener("load", () => {
    const currentHost = window.location.hostname;
    
    document.querySelectorAll('a[href^="http"]').forEach(link => {
      if (link.hostname !== currentHost) {
        link.target = '_blank';
        link.rel = 'noopener noreferrer';
      }
    });
  });
</script>