Avatar billede phliplip Nybegynder
12. oktober 2008 - 16:01 Der er 16 kommentarer og
1 løsning

Spring onbeforeunload over hvis tryk på gem

Hey,

Jeg har en WYSIWYG editor, hvor jeg EVIG og altid kommer til at gå til forige side fordi jeg trykker alt+pil_venstre. Derfor har jeg lavet en nødbremse så man ikke kan forlade siden uden aktivt at godkende det, vha. onbeforeunload.

Jeg har fået onbeforeunload til at virke ;) Super lækkert!

Men hvordan får jeg den til IKKE at poppe op når jeg klikker på gem knappen?
Avatar billede roenving Novice
12. oktober 2008 - 16:05 #1
F.eks. ved at sætte en variabel til false fra start og ved edit, sætte den til true ved tryk på gem og så teste den ved unload !-)
Avatar billede phliplip Nybegynder
12. oktober 2008 - 16:24 #2
Jaaahhh...

Mit onbeforeunload script..

<script type="text/javascript">
window.onbeforeunload=ConfirmClose;
function ConfirmClose()
  {
    return "Ændringer i nuværende dokument vil være tabt.";
  }

</script>

Hvor skal det ind? jeg har prøvet at lave return false; i stedet for return "string".. det virkede ikke rigtigt ;)

Kan da godt være jeg lider af søndags sløvsind.
Avatar billede roenving Novice
12. oktober 2008 - 22:00 #3
<script type="text/javascript">
var gemt = false;
function aendret(){
  gemt = false;
}

window.onbeforeunload function(){
    return gemt || "Ændringer i nuværende dokument vil være tabt.";
  }

</script>

...

<input type="submit" onclick="gemt=true";>

-- absolut utestet !-)
Avatar billede roenving Novice
13. oktober 2008 - 16:11 #4
Ups, der mangler da lige et enkelt tegn:

window.onbeforeunload = function(){
Avatar billede skovenborg Nybegynder
13. oktober 2008 - 23:22 #5
det er nok nærmere:
window.onbeforeunload = function() {
if (!gemt)
  return "Ændringer i nuværende dokument vil være tabt.";
}
Avatar billede olebole Juniormester
13. oktober 2008 - 23:37 #6
<ole>

Jamen go'hej skovenborg! Long time no see  =)

Dén del af roenvings script er nu okay, men det er funktionen 'aendret' ikke. Hvis vi lige tager det hele én gang til:

<script type="text/javascript">
var gemt = false;
function aendret(){
  gemt = true;
}

window.onbeforeunload = function(){
    return gemt || "Ændringer i nuværende dokument vil være tabt.";
  }

</script>

...

<input type="submit" onclick="gemt=true";>

/mvh
</bole>
Avatar billede olebole Juniormester
13. oktober 2008 - 23:39 #7
Dooohhhhh ... omvendt!

<script type="text/javascript">
var gemt = true;
function aendret(){
  gemt = false;
}

window.onbeforeunload = function(){
    return gemt || "Ændringer i nuværende dokument vil være tabt.";
  }

</script>

...

<input type="submit" onclick="gemt=true";>
Avatar billede roenving Novice
13. oktober 2008 - 23:43 #8
Argh ...

-- og velkommen tilbage Ulrik, det'r zq lang tiden du er set sidst !-)
Avatar billede skovenborg Nybegynder
14. oktober 2008 - 00:09 #9
jo tak, men havde helt glemt hvor stærkt det går herinde. Man vender ryggen til og så ligger der 17 mails i inboxen ;-)
Avatar billede skovenborg Nybegynder
14. oktober 2008 - 00:18 #10
Jeg havde nu ellers forstået det sådan at den boks, som popper frem når onbeforeunload vises, ikke skulle vises, hvis man havde gemt.
I firefox kommer den frem, også selvom gemt er sat til true. Derfor mener jeg det nok er bedre kun at returnere en streng når gemt er false.

Desuden evaluerer
gemt || "Ændringer i nuværende dokument vil være tabt.";
altid til true.
Avatar billede skovenborg Nybegynder
14. oktober 2008 - 00:19 #11
hov, den sidste del af kommentaren er jo forkert. Den returnerer jo strengen hvis gemt er false... sorry!
Avatar billede phliplip Nybegynder
14. oktober 2008 - 09:20 #12
Hej, og tak for de mange input ;)

Umiddelbart kan jeg ikke lige se hvor aendret funktionen bliver brugt henne !??! ;)

Men jeg vil prøve at implementere det senere i dag så får i lige respons.

/Philip
Avatar billede roenving Novice
14. oktober 2008 - 15:58 #13
aendret skal du sætte ind på onchange i tekstfelter mv.
Avatar billede phliplip Nybegynder
27. april 2009 - 10:20 #14
Ehh... kan ikke huske om jeg fik afsluttet det her.. men dem der føler de burde få point kan jo lige smide et svar inden det lukkes :)
Avatar billede phliplip Nybegynder
22. september 2009 - 12:31 #15
Så er det sidste chance..
Avatar billede roenving Novice
22. september 2009 - 19:01 #16
Oki ...
Avatar billede roenving Novice
08. oktober 2009 - 22:08 #17
-- og tak for point ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester