Hoi,

Mijn kennis van JS is minimaal.

Ik heb een site en voor een paar onderdelen daarvan gebruik ik JS. Nu wil ik dat in 1 JS-bestand zetten. Uiteraard netjes en zoals het hoort. Daar heb ik een vraag over..

Ik gebruik functies zoals:
window.onload = function() {


Dat is goed zo.
Maar ik heb ook JS die niet binnen een functie valt, zoals:
if(document.getElementById("mijn-id")) {


Is die laatste in een soort van algemene container/functie te zetten?
Of kan dat gerust in hetzelfde bestand staan?

Guido
Hoi Ron,

Heb je dit getest? Want bij mij is formulier gewoon ingevuld als ik na versturen op terug knop druk.
Voor de zekerheid nog een keer getest in Chrome, Edge, Firefox en Brave. Het werkt perfect.

Heb je getElementById("....") veranderd in de id van jouw form?
Heb je een Ctrl + F5 gedaan?

De 'pageshow' triggert als een pagina wordt weergegeven bij de 1e keer én als je terug navigeert vanuit de cache.
De 'event.persisted' is true wanneer de pagina uit de browser cache wordt geladen.
Daarom kan je het inkorten tot:

window.addEventListener('pageshow', function(event) {
  document.getElementById("id_van_form").reset();
});
Ja hoor, had alles goed gedaan. Net opnieuw getest.

Echter, jouw nieuwe snippet werkt wél, thanks!

Dus er lijkt toch iets mis te zijn met je eerste snippet.
Beide snippets werken goed maar bij de laatste versie is geen if() waardoor ook bij de 1e keer laden het formulier wordt geleegd.

Als je de scripts in de html onderaan hebt staan, vlak boven </body> (best practices) dan is dit voldoende

// Form anchor
const formAnchor = document.getElementById("mijn-anchor-id");
if (formAnchor) formAnchor.scrollIntoView({behavior:"smooth",block:"center"});


Ron Kr. op 20/01/2026 20:03:59

Beide snippets werken goed maar bij de laatste versie is geen if() waardoor ook bij de 1e keer laden het formulier wordt geleegd.

Het gaat mij dus vooral om het legen vh formulier als je op de terug knop in de browser drukt. Dat die ook leegt als de pagina voor het eerst laadt, prima.
Ik ga "pageshow" gebruiken omdat dit de juiste manier is. Thanks!

Reageren