Autor | Zpráva | ||
---|---|---|---|
matthew Profil |
#1 · Zasláno: 19. 12. 2008, 11:57:47
V tagy body vyvolám při události onBeforeUnload (před zavřením okna) hlášku, která upozorní na opuštění stránky. Pokud ale kliknu na jedno určité tlačítko (<a> odkaz), hlášku bych chtěl odstranit, aby se nezobrazila. Jde to nějak?
|
||
Měsíček Profil |
#2 · Zasláno: 19. 12. 2008, 12:07:02 · Upravil/a: Měsíček
U IE je to detachEvent() a u FF a ostatních tuším remoteEventListener nebo tak něják .. takže jestli jsem to pochopil tak třeba takhle:
<script type="text/javascript"> /** * Přidáme událost */ function Attach () { document.body.attachEvent("onBeforeUnload", function_x); } window.onload = Attach; /** * Funkce, která bude spuštěna na onBeforeUnload. */ function x () { alert(1); } /** * Odstranění události */ function Detach () { document.body.detachEvent("onBeforeUnload", function_x); } </script> |
||
Chamurappi Profil |
#3 · Zasláno: 19. 12. 2008, 12:40:14
Reaguji na matthewa:
Nejjednodušší a nejčistší je zapodmínkovat tu hlášku — testovat něco, co při kliknutí na to jedno určité tlačítko změníš. Místo onbeforeunload bych na tvém místě použil spíš onunload. Reaguji na Měsíčka: Zbytečně složité. |
||
matthew Profil |
#4 · Zasláno: 19. 12. 2008, 12:46:53
Chamurappi
„Místo onbeforeunload bych na tvém místě použil spíš onunload. “ Vyvolávám hlášku typu confirm, aby se stránka popř. nezavřela. Pokud použiji onUnload, stránka se zavře. Nebo ne? |
||
Leo Profil |
#5 · Zasláno: 19. 12. 2008, 13:42:05
Chamurappi
"Nejjednodušší a nejčistší je zapodmínkovat tu hlášku — testovat něco, co při kliknutí na to jedno určité tlačítko změníš." Nejjednodussi a nejcistsi je zrusit registraci udalosti onbeforeunload pri kliknuti na ten odkaz, Leo |
||
Chamurappi Profil |
#6 · Zasláno: 19. 12. 2008, 14:17:57
Reaguji na Lea:
To je pravda. Ale spíš pomocí document.body.onbeforeunload = undefined než skrze detachEvent. Reaguji na matthewa: Funguje ti onbeforeunload ve všech prohlížečích? |
||
Leo Profil |
#7 · Zasláno: 19. 12. 2008, 15:15:23
"Ale spíš pomocí document.body.onbeforeunload = undefined než skrze detachEvent."
Tak to se shodneme. Akorat bych tam dal onbeforeunload = null, Leo |
||
Časová prodleva: 2 roky
|
|||
_es Profil |
#8 · Zasláno: 28. 3. 2011, 16:55:02
Chamurappi:
„Ale spíš pomocí document.body.onbeforeunload = undefined než skrze detachEvent.“ Nie skôr window.onbeforeunload = undefined ?
|
||
Chamurappi Profil |
#9 · Zasláno: 28. 3. 2011, 17:02:20
Reaguji na Lea:
„Akorat bych tam dal onbeforeunload = null“ Já také, nevím, kde se mi tam vyloupl ten undefined — Explorer ho u událostí vyloženě nemá rád.
Reaguji na _es: Asi jo, až na ten undefined . Předchozí příspěvek psal o document.body.attachEvent , tak jsem se toho držel.
|
||
_es Profil |
#10 · Zasláno: 28. 3. 2011, 17:31:51
Chamurappi:
Myslím, že atribúty v značke <body> definujúce udalosti, zodpovedajú vlastnostiam objektu window .
Možno to je trochu nelogické, no tak to je zaužívané, alebo to pre nejaké udalosti v niektorých prehliadačoch neplatí? „undefined — Explorer ho u událostí vyloženě nemá rád.“ Aké problémy by to mohlo spôsobiť? Myslel som, že priradenie null a undefined má v takýchto prípadoch ten istý efekt.
|
||
Chamurappi Profil |
#11 · Zasláno: 28. 3. 2011, 17:51:59
Reaguji na _es:
„alebo to pre nejaké udalosti v niektorých prehliadačoch neplatí?“ Matně si vzpomínám, že u odchytávání kláves je trochu nepořádek v tom, u čeho kde jde stornovat výchozí akce. Také bych si tipnul, že události myši spojené s <body> se vztahují jen na plochu elementu <body> , která nemusí pokrývat celou plochu prohlížeče.
„Aké problémy by to mohlo spôsobiť?“ Výjimku „Not implemented“. |
||
Časová prodleva: 14 let
|
0