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

Quick Edit Pencil
Google Blogger ブログで

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


  1. <!--ページ内リンク改善スクリプト-->
  2. <script>
  3. (function () {
  4. var el=document.querySelectorAll("div.post-body a[href*='#']");
  5. el.forEach(function(link) {
  6. if(/http:\/.*?#|blogID=\d+#/.test(link.href)){
  7. link.href = "#"+link.href.split(/blogID=\d+#|http:\/.*?#/)[1];
  8. }
  9. });
  10. }());
  11. </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番号と項目名を列挙します

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

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

ヤバい!JAPANNEXT WQHD対応 27型ワイド液晶ディスプレイ「JN-IPS2716WQHD」を注文してみた!!!

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

決定版 Edgeでローカルファイルを開く パワーシェルスクリプト (ウインドウズでドロップレット)

カルチャーラジオ 科学と人間 薬と毒の歴史をひも解く 日本薬科大学教授…船山信次

Windows10でアプリケーションごとに輝度を設定、自動で変更する - AutoHotkey