[JS] Bevestiging van sluiten venster

Pagina: 1
Acties:

  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Is er een manier om een bevestigingsscherm weer te geven zodra ik een venster sluit?

Dus ik klik op het leuke kruisje rechtsboven, vervolgens komt er zo'n javascript-confirm, iets in de richting van "Weet u zeker dat u dit venster wilt sluiten?", en bij OK sluit het venster, bij annuleren niet...

Bestaat dit? Of is dit gewoon onmogelijk? Ik heb al een beetje lopen stoeien met het onunload-event, maar kom er maar nie uit...

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:41

crisp

Devver

Pixelated

onBeforeUnload (IE only)

Intentionally left blank


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Daar ben ik nu mee aan het stoeien, maar ik in mijn applicatie veel met dingen die in elkaar gepost worden en met popups, en het is nogal irri als je iedere keer als je ook maar iets probeert op te slaan zo'n melding krijgt...

Ik wil het dus alleen krijgen op het moment dat er niks gewijzigd is. De functionaliteit om dat uit te zoeken is er, nu moet ik het dus nog juist zien te combineren...

Die onbeforeunload is me eigenlijk iets te fanatiek, maar als ik daar m'n eigen confirm binnen hang, sluit ie vrolijk toch het venster... Iemand een idee om dit dan te voorkomen?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:41

crisp

Devver

Pixelated

Skef schreef op 25 oktober 2002 @ 10:35:
Daar ben ik nu mee aan het stoeien, maar ik in mijn applicatie veel met dingen die in elkaar gepost worden en met popups, en het is nogal irri als je iedere keer als je ook maar iets probeert op te slaan zo'n melding krijgt...

Ik wil het dus alleen krijgen op het moment dat er niks gewijzigd is. De functionaliteit om dat uit te zoeken is er, nu moet ik het dus nog juist zien te combineren...

Die onbeforeunload is me eigenlijk iets te fanatiek, maar als ik daar m'n eigen confirm binnen hang, sluit ie vrolijk toch het venster... Iemand een idee om dit dan te voorkomen?
Je zult het hier echt mee moeten doen, want het is de enige mogelijkheid. Kijk ook eens op de volgende pagina's hoe je de handler kan activeren en de-activeren.
Een paar weken geleden was er hier ook al een draadje over; die persoon is het uiteindelijk ook gelukt.
Nadeel is dus wel dat je al je navigatie binnen je site met javascript moet gaan doen.

Intentionally left blank


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Dat gebeurt gelukkig al... Het is nl. geen site, meer een web-applicatie... Voor een site zou ik dit niet gebruiken, vinden bezoekers alleen maar irri ;)

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Ik heb het nu zo goed als klaar, ik zit alleen nog met een dingetje...

Als ik op een gegeven moment een veld gewijzigd heb, is er een onchange-event welke een bepaalde variabele een andere waarde geeft. Maar die waarde krijgt die variabele pas, op het moment dat de focus van het veld af gaat (dus de cursor ergens anders is). Als ik dus maar 1 veld gewijzigd heb, doet ie het niet...

Iemand suggesties hoe ik de focus er af krijg, of dat ik de onchange moet aanpassen naar iets anders?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

onkeyup (of down)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
OnKeyUp snap ik ja, maar als er niets gewijzigd word dan?

Bij wijze van spreken: iemand vult iets in in een leeg veld, en haalt het gelijk weer weg. Dan is er dus geen verandering, en onchange wordt dan niet getriggerd.

OnKeyUp wordt altijd getriggerd.... Dus iets van een blur() of een focus() ding?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:41

crisp

Devver

Pixelated

Wat dacht je van in je onBeforeUnload functie je invoervelden controleren. Als er niets gewijzigd is return je niets uit je functie en wordt het window gewoon afgesloten zonder melding.

Intentionally left blank


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
het probleem is, dat de invulvelden volledig dynamisch zijn, zelfs de naamgeving. Dit wordt iedere keer volgens de structuur uit de database opgebouwd, en hier is dus geen touw aan vast te knopen...

wat jij dus zegt crisp, kan voor een statisch form wel, maar voor een dynamisch wordt het een stuk lastiger...

Ik ben er nu mee bezig om een aparte DIV te maken, waarin een textfield staat welke de focus krijgt op het moment dat de onBeforeUnload getriggerd wordt... Dan doet ie het wel nl.

het is alleen wel "naar" dat er op een div met als style "visibility : hidden" niet gefocust kan worden.....

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Ergens denk ik toch wel dat een gebruiker wel weet wanneer hij wel of niet zijn eigen windows wil sluiten. Je hebt immers altijd "ok", "save" of "udpate" knoppen onderaan je forms staan, en dan weet de gebruiker ook wel dat wat hij daar invult niet opgeslagen wordt als die niet op zo'n knop, maar op het kruisje van het window klikt.
't is heel nobel je applicatie 100% fool-proof te willen maken, maar je kan ook te ver gaan :)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Jij kent dus onze klanten / gebruikers nog nie ;) ;)

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

klant/gebruiker heeft niet per definitie gelijk :)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
Ik doel meer op het intelligentieniveau van de gebruikers ;) Digibeten zijn er niks bij!

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 01:26

RM-rf

1 2 3 4 5 7 6 8 9

Skef schreef op 25 oktober 2002 @ 12:48:
Ik doel meer op het intelligentieniveau van de gebruikers ;) Digibeten zijn er niks bij!
hmm, en daarom hebben ontwikkelaars een intelligentieniveau van een dusdanige hoogte dat ze een redelijk generiek scriptie in elkaar kunnen zetten dat niet afhankelijk is van statische pagina-opzet en dus 'vaste' waardes:
ontwikkelaars die klagen over het niveau van hun gebruikers zijn zelf niet goed genoeg (klagen over klanten is niet gelijk daarin, maar ook dat; niet publiekelijk doen).

je kunt gewoon onload je document.forms doorlopen en alle forms eruithalen, vervolgens loop je alle elementen eruit en checked hier de value van en slaat deze op in een array.
onbeforeunload herhaal je dat maar ipv opslaan in een variabele check je de huidige waarde met die in het form, zo moeilijk lijkt me dat niet.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Skef
  • Registratie: April 2001
  • Laatst online: 27-08 20:26

Skef

Ik scheer.me

Topicstarter
* Skef zegt al nix meer, je hebt gewoon gelijk... |:(

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Die persoon waar crisp het over had ben ik :)

Wat ik uiteindelijk gedaan heb is functie geschreven die kijkt Of er een formulier is (/formulieren zijn) en zo ja, dan gaat ie van alle formulieren bij het laden van de pagina, na wat de waarde is van ieder invoerveld. Daar maakt ie 1 grote string van die weer wordt gecontroleerd op het moment dat de gebruiker de pagina verlaat. Voordeel is ook dat als iemand van een 1 een 2 maakt, en daarna weer een 1 dat dat dus niet als verandering wordt gezien (een onChange zou dat wel als verandering zien).

Anyways, hier staat de hele functie:
[rml][ javascript] formulier & waarschuwing bij verlaten pagina[/rml]

wat ik daarbij ook nog gedaan heb is een uitzondering voor bepaalde velden gemaakt. Zo heb ik op een aantal pagina's een invoerveld die altijd dezelfde naam heeft, en die gebruikt wordt om te navigeren dmv een nummer. Die sluit ik dus uit van toevoeging aan die string.

Mail me anders maar als je er niet uitkomt

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Kijk anders eens naar mijn editor online (zie sig)
Daar heb ik ook zoiets, misschien dat je daar wat mee kan?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router

Pagina: 1