Blogger ページ内リンクの正しい設定方法

Quick Edit Pencil
Google Blogger ブログで

ページ内リンクが正常に働かない状態を JavaScript で解決する


<!--ページ内リンク改善スクリプト-->
<script>
(function () {
    var el=document.querySelectorAll("div.post-body a[href*='#']");
    el.forEach(function(link) {
      if(/http:\/.*?#|blogID=\d+#/.test(link.href)){
        link.href = "#"+link.href.split(/blogID=\d+#|http:\/.*?#/)[1];
      }
    });
}());
</script>

管理ページの レイアウト footer-1 へ 「 HTML/JavaScript 」 ガジェットを追加し JavaScript をコピペして保存する。

これでブログ内のリンク内ページのリンクが自動修正され正常に動作する。

目次




症状

ページ内リンク(アンカーリンク)を正しく設定しても、編集モードを切り替えたり、再編集を行うとページ内リンクに余計な情報が付加され、リンク先がブログ管理ページへのと代わってしまう。



対処方

ページ内リンクに対して行われる余計なリンク情報を掃除する Javascript を仕込むことで正常なページ内リンクに戻す。



アンカー名の重複を防ぎ、ページ内リンクをより健全にするために

投稿記事の単体ページではアンカー名が重複しなくても、複数の投稿が1ページに表示されるアーカイブページでは、アンカー名(ID)が重複する可能性があります。

これを防ぐためにアンカー名を一意とする必要があります。



アンカー名の命名規則



アンカー名(ジャンプ先の名前)命名規則

アーカイブページでのアンカー名重複を防ぐための命名規則として

postID+アンカー名

<div id="アンカー名+postID"></div>

postIDは記事の編集画面のアドレスバーで確認できます。この記事のpostIDは3265737230123688960となっているので、アンカー名は次となります。これでブログ内で一意のアンカー名となります。

<div id="footer-3265737230123688960"></div>

※idの先頭文字はアルファベットとしてください。







このブログの人気の投稿

書字方向 横書方向変換スクリプト 左書きから右書きへ(コピペ用途)

PowerShellのGetDetailsOf メソッドでプロパティの詳細情報のID番号と項目名を列挙します

PowerShellで複数ファイルのプロパティを取得する方法(準備編)

簡単 YouTube動画をダウンロード、音声のみ保存する方法 2019

DOMノードオブジェクトを文字列に変換する

AppleScript 改行 コード 置換

Blender: 辺の長さを数値で指定するアドオン

Powershell: プロパティの詳細情報インデックスと項目名の列挙