Autor Zpráva
matthew
Profil
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
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
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
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
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
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
"Ale spíš pomocí document.body.onbeforeunload = undefined než skrze detachEvent."

Tak to se shodneme. Akorat bych tam dal onbeforeunload = null, Leo
_es
Profil
Chamurappi:
Ale spíš pomocí document.body.onbeforeunload = undefined než skrze detachEvent.
Nie skôr window.onbeforeunload = undefined?
Chamurappi
Profil
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
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
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“.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: