06. juli 2003 - 20:43Der er
8 kommentarer og 1 løsning
onbeforeunload event
Jeg har en række dokumenter i IFRAME's, og hver af dem har tilknyttet en "unbeforeunload" event (proprietær tag som kun fungerer i MSIE). Når man forsøger at forlade en side, kan jeg tillade, eller forhindre det, alt efter situationen.
Men hvordan kan man finde ud af hvilket dokument (IFRAME) der har affødt denne event? Så vidt jeg har kunnet finde ud af i MS' dokumentation kan det ikke lade sig gøre at lave f.eks en event.srcElement...eller?
MEN jeg ville være meget forsigtig med at forhindre unloads af vinduer -- jeg er nemlig selv en af de surfere, som ville droppe et site fuldstændig, hvis der gøres noget ved mig, som jeg ikke har 'gjort' selv !o]
roenvig - sådan fungerer det altså ikke. Denne event skaber en dialogboks som siger "Do you want to leave this page?...Yes/No" (på dansk eller engelsk alt efter den installerede browser), og det eneste argument man kan give den er event.returnvalue - som den så tilføjer som "Do you want to leave this page?...<min værdi>"...Yes/No.
Men bare rolig, det er såmænd ikke en almindelig "surferside" det er snarere en HTML applikation med Multiple Document Interface (ellers ville jeg aldrig bruge propritære IE-only tags)
Fedt du stadig tjekker vores tråd her på eksperten. Jeg var lige et smut ude i sommerlandet, men nu er jeg tilbage ved tastaturet!
Hmm...det jeg har brug for er, at annullere eksekvering af mit script, såfremt brugeren trykker på Cancel/Annuller, og allerbedst med mulighed for at afgøre navnet på dokumentet som affyrede event'en.
Jeg sætter adskillige steder værdien for "document.location.href" i en iframe som altså har "onbeforeunload" tilknyttet. Hvis brugeren så annullerer indlæsningen af den nye side, bliver jeg nødt at "lade som ingenting" da jeg jo ikke på nogen måde kan afgøre om siden blev hentet eller ej (og det vil da være åndsvagt at skulle til at lave et script som nøjes med at trille tommelfingre og vente på at der bliver sagt "her er jeg" når vores side (måske!) bliver hentet).
Så hvis jeg kunne sige:
if(document.location.href='http:/127.0.0.1'){ //det lykkedes at sætte location property }else{ //bruger annullerede }
ville det være perfekt! Hvis du forstår hvad jeg mener ....
Klart! Det løser "problemet" med at fortælle brugeren hvilket dokument han/hun er i færd med at lukke (jeg tilføjer document.title til event.returnvalue). Nogle gange mister man overblikket i de store script's, og glemmer fundementale funktioner. Kender du følelsen?
Det måtte gerne være ligeså let at konstatere at event'en blev annulleret...men det er jeg lidt bange for at det ikke er...det er jo en underlig størrelse event med dens egen interface osv.
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.