Tach!
Wie immer geht man bei solchen Problemen daran, die Teilfragen zu stellen, die man auf dem Weg zur Lösung braucht.
- Der Seite soll für einen User, wenn er innerhalb der Seite gescrollt hat, wieder ganz genau an diesen Punkt zurückspringen
Wie bekommt man die aktuelle Scrollposition im Browser raus? Wie speichert man Werte im Browser zum Wiederverwenden zwischen Requests?
- Der Seitenreload soll ausgesetzt sein,wenn der User zb. gerade ein Formular ausfüllt.
Definiere "User füllt ein Formular aus". Wie erkennst du (erstmal logisch und noch nicht programmiertechnisch), dass das der Nutzer gerade macht? Reicht bereits "User hat ein Formularfeld aktiviert"? Oder soll noch eine Endebedingung wirken, à la "User ist x Zeiteinheiten lang inaktiv", oder "User klickt irgendwo anders auf die Seite"?
Je nachdem, was hier die Anworten sind, musst du dir überlagen, welche technischen Schritte, Abläufe und Wechselbeziehungen notwendig sind, um das Szenario zu bedienen. Timeouts und Klickerkennung (und ähnliches, wie onblur) kommen da sicher ins Spiel.
Lösungsrichtungen für die ersten beiden Fragen:
Wie bekommt man die aktuelle Scrollposition im Browser raus?
Da gibt es Elementeeigenschaften mit scroll im Namen.
Wie speichert man Werte im Browser zum Wiederverwenden zwischen Requests?
Dazu gibt es zum Beispiel den Local Storage oder den Session Storage. In deinem Fall ist wohl letzterer angebracht.
dedlfix.