[javascript] window.onbeforeunload in andere browsers

Pagina: 1
Acties:
  • 46 views sinds 30-01-2008

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik maak voor een intranet applicatie gebruik van de window.onbeforeunload - iets wat IE heeft ingebouwd om het verlaten van een pagina (dmv klikken op een link, of het kruisje rechtsbovenin) te kunnen onderbreken en eventueel cancellen. Ik heb er nog een hele functie omheen geschreven die het activeert op het moment dat er veranderingen zijn gemaakt in een formulier, zodat mensen hun ingevoerde data niet per ongeluk kwijtraken.
IK heb deze functie op speciaal verzoek geschreven omdat de mensen die er mee moesten werken het maar niet voor elkaar kregen er aan te denken dat ze eerst iets moeten opslaan alvorens weg te klikken.
Om de kosten wat te drukken qua licenties willen ze nu echter heel graag over op linux-workstations (iets waar ik me overigens niet mee bezig houdt) en ze willen dus ook graag van IE af. Nou weet ik dat het via veel omwegen mogelijk is IE onder linux te laten draaien.....maar liever niet.

Mijn vraag is dus: bestaat er iets wat dezelfde functionaliteit biedt als de window.onbeforeunload en dat ook werkt in andere browsers?

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Misschien kun je een automatische save functie inbouwen in de onunload :?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
nee dat is niet mogelijk. Er zijn per formulier/pagina meerdere acties mogelijk, dus het is onmogelijk na te gaan welke de goede is op het moment dat iemand zomaar wegklikt

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Misschien moet je met hta's gaan werken. Alleen ik weet niet precies welke OS'sen en Browsers dat ondersteunen. Maar dan kun je het kruisje gewoon weglaten.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
dan zit je nog steeds met het probleem van de links waar ze op kunnen klikken

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Dan zul je op de plaatsen waar ze iets belangrijks invullen alle links moeten weghalen. Kijk, je kunt het volledig 'hufterproof' maken net zoals de games voor kinderen tot 3 jaar. Maar ergens ligt wel een grens. Als die mensen dan per ongeluk vergeten te saven hebben ze gewoon een probleem, net als alle andere arbeiders waarvan de pc crasht terwijl ze net 3 uur hebben zitten typen.

Verwijderd

Gezien het feit dat je dit met JS wilt oplossen neem ik aan dat er geen server-side scripttalen worden ondersteund? Want dat zou het probleem zo kunnen oplossen.

Maar bij het verlaten van een pagina of een formulier kan je de gegevens van een Form toch in een cookie gooien?

Misschien een Popup in de unload plaatsen: "heb je overal wel op save gedrukt?" Met een functie om terug te keren als ze nee kiezen? Als ze dan nog wegklikken: eigen schuld, dikke bult :+

[ Voor 26% gewijzigd door Verwijderd op 31-12-2002 12:02 ]


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
ik vind het tof dat je meedenkt, maar dit gaat allemaal niet werken. geloof me, ik heb al uren daar op die mensen en de directeur ingepraat, maar uiteindelijk zal ik toch moeten doen wat de klant wil.
En links weghalen gaat natuurlijk helemaal niet, want daar wordt het ding zo gebruikersonvriendelijk van als het maar kan. Ze moeten wel een beetje relaxed overal doorheen kunnen skippen, ook als ze per ongeluk ergens iets invullen.. Daarbij: dan moet ik dus een soort functie gaan schrijven dat bij het laden van een pagina het menu nog wel weergeeft, maar zodra er iets wordt ingevuld het hele menu disabled en alle andere links op zo'n pagina. Je snapt zelf hopelijk ook wel dat dat een soort onmogelijke opgave wordt. Daarbij het gaan niet om 1 pagina, maar een stuk of 50

Dus ik zou graag weer naar m'n eerste vraag terugwillen gaan: "bestaat er iets wat dezelfde functionaliteit biedt als de window.onbeforeunload en dat ook werkt in andere browsers?"

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 31 december 2002 @ 11:59:
Gezien het feit dat je dit met JS wilt oplossen neem ik aan dat er geen server-side scripttalen worden ondersteund? Want dat zou het probleem zo kunnen oplossen.
jawel hoor, php. alles wordt in een mysql database opgeslagen.
Hoe kan dit een oplossing bieden dan?
Maar bij het verlaten van een pagina of een formulier kan je de gegevens van een Form toch in een cookie gooien?
dat zal niet gaan werken denk ik. als zij persoonsgegevens aan het editten zijn, wijzigingen aanbrengen en naar het volgende record gaan, dan wordt gelijk alle data al overschreven met dat record.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 31 december 2002 @ 11:59:
Misschien een Popup in de unload plaatsen: "heb je overal wel op save gedrukt?" Met een functie om terug te keren als ze nee kiezen? Als ze dan nog wegklikken: eigen schuld, dikke bult :+
Dat gaat ook niet werken. 90, zo niet 95% van de kliks zijn op links die ze doen omdat ze willen navigeren. Als ze bij iedere klik dan nog eens gaan moeten aangeven of ze dat zeker weten worden ze gek natuurlijk. dat werkt niet

Verwijderd

marty schreef op 31 december 2002 @ 12:04:
[...]
jawel hoor, php. alles wordt in een mysql database opgeslagen.
Hoe kan dit een oplossing bieden dan?
Voordat je de mensen de mogelijkheid geeft om op een link of het kruisje te klikken kan je natuurlijk allang de gegevens opslaan in de db. Helemaal fool proof kan je het nooit maken, maar als je een goede workflow hebt moet dit grotendeels mogelijk zijn.

Ik snap niet helemaal waarom dit niet mogelijk is? Leg eens uit hoe de app gebouwd is en wat het doet!

Verwijderd

het is om een bevestigign te krijgen voordat mensen een pagina verlaten en ze net een hele zooi informatie hebben ingevoerd in een formulier, dit event is eigenlijk ingevoerd om het feit dat IE ingevulde data te onthouden, in mozilla bijvoorbeeld kun je gewoon op de back button klikken en je zal alle ingevulde informatie zien.

onbeforeunload wordt veel gebruikt in CMS'en en ik weet dat er een bug in bugzilla staat waar wordt gevraagd aan de developers om het ook te impementeren in Mozilla (Xopus en Bitflux).

Er is echter nog steeds geen implementatie buiten IE.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 31 December 2002 @ 12:50:
[...]


Voordat je de mensen de mogelijkheid geeft om op een link of het kruisje te klikken kan je natuurlijk allang de gegevens opslaan in de db. Helemaal fool proof kan je het nooit maken, maar als je een goede workflow hebt moet dit grotendeels mogelijk zijn.

Ik snap niet helemaal waarom dit niet mogelijk is? Leg eens uit hoe de app gebouwd is en wat het doet!
wat schiet ik met een serverside scripttaal als php op als de handelingen aan de clientside gebeuren??? :?
Op het moment dat php in de gate heeft dat de gebruiker de pagina verlaten heeft is het een beetje laat he....

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
Je zou iets kunnen maken in javascript dat om de zoveel tijd dingen automatisch gesaved worden of iets dergelijks.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
McVirusS schreef op 31 December 2002 @ 14:58:
Je zou iets kunnen maken in javascript dat om de zoveel tijd dingen automatisch gesaved worden of iets dergelijks.
daar ga ik ook problemen mee krijgen. dan zou ik al een popupje moeten openen die alle velden uit het formulier in leest en vervolgens in de mysql database gooit.
maar wat als ze een nieuw persoon aan het invoeren zijn? dan moet ik dus ook al een (hidden) veld in het formulier gaan wijzigen die duidelijk maakt bij het uiteindelijke submitten dat die persoon al door de automatische backup is gesaved. Bovendien moet ik dan om m'n eigen safeties qua invoeren heen (dat telefoonnummers uit 10 cijfers etc. bestaan) - die moet die backup dan maar even negeren ofzo? en wat als het invoeren wordt afgebroken en besloten wordt het later te doen? dan krijg je allerlei onvolledige (en uiteindelijk dubbele) records in de database.

nee, ik denk dat ik dat niet echt zie zitten - wordt een onwijze klus (om dat voor ieder formulier te doen) en het geeft alleen een puinhoop

Verwijderd

Ik had ooit eens een vraag over het sluiten met popup misschien kan dat helpen? Met hiddendiv ofzo.. (snapte het niet echt :))

http://gathering.tweakers.net/forum/list_messages/567089

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 03 January 2003 @ 12:23:
Ik had ooit eens een vraag over het sluiten met popup misschien kan dat helpen? Met hiddendiv ofzo.. (snapte het niet echt :))
sorry, maar ik denk dat je de strekking van deze topic ook niet echt snapt... :)
no offense

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Kan je niet, als er meer dan zoveel tekens zijn ingevuld, (bijv aantal chars form 1 + form2 + form3) bij het verlaten van de pagina een alert doen?

Mensen die willen navigeren vullen niets in en kunnen ongestooord verder navigeren. Domme mensen die iets niet saven nadat ze hebben getypt krijgen een alert.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
en dan...... ?
klikken ze de alert weg, de pagina gaat ergens anders heen en de data is niet gesaved
:? :?

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Uh, oh shit, denkfout.

of als er iets is ingevuld op de pagina in grote letters "vergeet niet te saven" laten verschijnen.

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 21-05 00:41

WPN

kan je niet met een ONCHANGE, php sessie variabellen reggen?


extra link in de page zetten met als naam: VERGETEN TE SAVEN GA TERUG
ofzowiets

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Kijk eerst eens naar de datum voordat je replied (je had trouwens een warning moeten zien dat dit een oud topic was)....

ter lering: om sessie variabelen op te slaan vanuit de client is er ALTIJD een postback noodzakelijk - lijkt me niet handig om dat op elke onchange te gaan zetten...

[ Voor 42% gewijzigd door crisp op 03-10-2003 23:07 ]

Intentionally left blank

Pagina: 1

Dit topic is gesloten.