GPSwalking

新着記事

毎日暑い日が続くので、家でパソコンに遊んでもらっている。

今朝、何げなく自分のホームページを見ていたら、右上に表示しているカレンダーの表示がおかしいことに気付いた。

カレンダーの不具合(7月26日)
8月1日のカレンダー

ホームページの記事は7月26日の次は8月1日の記事がある。
従って、左の7月26日の記事のカレンダーの「7月」の右側の「>>」は、8月の記事があるのだから「青色表示」でないとおかしい。
右の画像は8月1日の記事のカレンダーだが、この表示は正しい。

7月26日のカレンダーの「7月」の右側の赤丸の「>>」は、7月が最終月であると表示している。
しかし実際には右の画像のように8月の記事があるのだから明らかに間違っている。
カレンダーの日付「2021.07.26」の右側の赤丸の「>>」は次の日付の記事がある事を示しているので、矛盾している。

このカレンダーは、随分前に試行錯誤で作成した Java Script によるもので、ページの右上のカレンダーと、その下の「年別のアーカイブ」と、ページの一番下の「<< 前記事」「後記事 >>」も表示している。

早速「calen.js」をテキストエディタで開いて見てみることにした。
該当記事の「後方月の記事検索」の部分の不具合だということは分かる。
どうやら、58行目の

while (pos-i > 0) {    // 後方月の山行日検索
  str1 = list[pos-i];
  str2 = strDate;
  if (str1.substr(0,6) != str2.substr(0,6) && str1 !="") {
    str4 = '<a href="../' + str1 + '/' + fname + '"%gt;<em>' + '>>' + '</em></a>';
    break;
  }
  i++;
}

らしいことが分かった。
ここで、while の条件式が (pos-i > 0) となっているが、これでは、0行番目のデータを無視することになっていることに気付いて、 (pos-i >= 0) に書き換えて「0」も含むようにしてテストしてみた。案の定うまく行った。

最近の記事

ページのトップへ戻る