表題の件ですが、どつぼにはまっておりましたが、ようやく解決。同様の現象に困っている人がいるかもしれないのでメモがてら公開しておきます。
<script type="text/javascript"><!-- window.location.hash=''; window.location.hash='pagetop'; } // --></script>
<head></head>の間に記述したこの命令文を、onclickで呼び出します。
window.location.hash=''; window.location.hash='pagetop';
ポイントはこの部分。なるほど、一度hashを空っぽにして、再びpagetop等のID名を指定してやればいいんですね。こんな簡単な方法で解決できるとは・・・。
ChromeとSafariでは、一度指定されたhashは2回目以降は実行されないという仕様があるみたいです。IEやFirefoxでは問題なくページ内リンクで移動ができたのですが、ChromeとSafariでこの現象に遭遇してしまい、かなり時間を使ってしまいました・・。
ChromeとSafariでアンカーに飛ばない|TAG index様
こちらで試した限りでは、ChromeでもOKでした。
ただし初回のみです。すでにhashがpagetopになっている状態で、再度書き替えても(変更がないので)そのままでした。多分>>0はこのことを指していると思いますが、それでよろしいですか?
ああ、まさにその通りの解釈です。あまりにもドンピシャの解答でしたので、TAG indexさんのBBSから引用して紹介しておきます。
ちなみに、上記のJavascriptでも動かない、という場合は、しっかりと<a id=”pagetop” name=”pagetop”/></a>といった具合に、aタグが入っているかも確認しておきましょう。ここが抜けているために、しっかりと動作しないという場合もあります。