リロードでスクロールがリセットされるかテスト
http://hitorinezumi.starfree.jp/test20231031-1.html
FirefoxとEdgeの基本的な仕様の違い。
Firefoxではスクロールした後でリロードしてもスクロールの位置は保たれるのに対し、Edgeでは最初から表示される。
これは、スクロールアンカリングが有効か無効かは関係ない。
Edgeで無効にする方法は分からないが、Firefoxでは無効にしてもスクロール位置の情報は保たれた。
次のスクリプトを足したら、Firefoxでもスクロール位置がリセットされた。
if (history.scrollRestoration) {
history.scrollRestoration = 'manual';
}
"自動的にページ上の位置の復元をしないようにする
if (history.scrollRestoration) {
history.scrollRestoration = "manual";
}
"
History: scrollRestoration プロパティ - Web API | MDN
https://developer.mozilla.org/ja/docs/Web/API/History/scrollRestoration
"auto"だと"ユーザーがスクロールしたページ上のスクロールの位置が復元されます。"とのこと。
これを同じタブで一時的に"manual"に変更するブックマークレット。
javascript:(function(){if (history.scrollRestoration) {history.scrollRestoration = 'manual';}})();
#Firefox でもEdgeでも機能した。上記URLページで試したら、どちらも"auto"だったらしく、リロードしたらスクロール位置が復元された。ブックマークレットで"manual"に変えたらリロードでスクロール位置がリセットされた。
「進む」「戻る」ボタンで機能せず。
リロードでスクロールがリセットされるかテスト
http://hitorinezumi.starfree.jp/test20231031-1.html
history.scrollRestorationのデフォルトは"auto"らしいが、それは、#Edge ではbodyには効くがdivボックスには効かないらしい。#Firefox ではdivボックスにも効いた。
切り替えるブックマークレット。
javascript:(function(){if (history.scrollRestoration=='manual') {history.scrollRestoration='auto';}else{history.scrollRestoration='manual';}})();