スクロール復元モード

History インターフェイス scrollRestoration 属性 (DOM)

[12] History インターフェイスscrollRestoration IDL属性は、履歴操作の後スクロール位置利用者エージェントが自動的に復元するべきか、 著者スクリプトに任せるべきかを表すものです。

[13] 通常はページ遷移が発生すると、その時点でのスクロール位置が保存され、 次に履歴移動で戻ってきた際にそれが復元されます。しかしこの属性manual に設定しておくことで、この復元を抑制できます。 複雑な表示処理を伴うWebアプリケーションでは、 利用者エージェントに任せるよりも著者スクリプトで復元作業を行った方が良いことがあります。

仕様書

意味

[14] 利用者エージェントによるスクロール位置の復元は、 利用者の利便性を向上させるための機能です。著者は、 スクロール復元モードを濫用してスクロール位置の復元を無効化したり、 意図的に異なる位置を表示したりするべきではありません。

[31] 多くの場合、 Webブラウザー利用者の行動を踏まえて最適な方法でスクロール位置を復元できます。 Webアプリケーション著者が安易にこの挙動を無効化するべきではありません。

スクロール復元モード

[2] セッション履歴エントリースクロール復元モード (scroll restoration mode) は、 当該セッション履歴エントリーへと履歴を探索した際に、 (あれば) 保存していたスクロール位置利用者エージェントが自動的に復元するべきかどうかを表します >>1

[5] スクロール復元モードは、 auto または manual です >>3。 これは列挙型 ScrollRestoration >>9 です。

[6] auto は、スクロール位置の復元を利用者エージェントが行うべきことを表します >>3

[7] manual は、スクロール位置の復元をページが行い利用者エージェントが行うべきではないことを表します >>3

[28] なお、これは復元を行わないというだけで、原点を表示するよう指示するのとは異なります >>3navigate の種別やキャッシュ戦略などによって >>3、 初期状態で原点以外が指された状態になっている場合があります。

[4] スクロール復元モードの既定値は、 auto です >>3

[16] 新しい文書への navigate では、 auto に設定されます。 既存の文書素片識別子への navigatepushStatereplaceStateセッション履歴エントリーが作られる場合は、 現在値が引き継がれます。

navigatepushState を参照。

[17] この値は、持続的利用者状態の復元の際に参照されます。

取得器

[8] History インターフェイスscrollRestoration 属性は、取得時、次のようにしなければなりません >>3

  1. [19] 文脈オブジェクト文書完全に活性でないなら、
    1. [20] SecurityError 例外投げます。
  2. [21] それ以外なら、
    1. [22] セッション履歴現在エントリースクロール復元モードを返します。

設定器

[11] History インターフェイスscrollRestoration 属性は、設定時、次のようにしなければなりません >>3

  1. [23] 文脈オブジェクト文書完全に活性でないなら、
    1. [24] SecurityError 例外投げます。
  2. [25] それ以外なら、
    1. [26] セッション履歴現在エントリースクロール復元モードを新しい値に設定します。

[10] この属性WebIDLは、 ScrollRestoration です >>9。 従って manual または auto を新しい値として指定できます。

歴史

[18] Tidy up history object API definitions · whatwg/html@a5d4802 ( 版) https://github.com/whatwg/html/commit/a5d48020d6f83d4d2719dbdbf62f5bb8be8ef2f8

[27] Clarify manual scroll restoration mode · whatwg/html@017a842 ( 版) https://github.com/whatwg/html/commit/017a842ec6c63e6ed4f26f77da41270688eab33e

[29] Move scroll position restoration after popstate ( (domenic著, )) https://github.com/whatwg/html/commit/98895af2179ad879da9fa57983ab9589251f7950

[30] Release Notes for Safari Technology Preview 26 | WebKit () https://webkit.org/blog/7474/release-notes-for-safari-technology-preview-26/

[32] New WebKit Features in Safari 11 | WebKit () https://webkit.org/blog/7956/new-webkit-features-in-safari-11/

[33] Editorial: nested browsing context is a member, not a type (annevk, , ) https://github.com/whatwg/html/commit/6b737bbc428facf34ec3728c0912cf9e172d0ea4