Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> onbeforeunload
olo707
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


Witam,

Mam dwa pytanie odnośnie metody jQuery onbeforeunload

Czy jest możliwość wykonania jakiegoś działania przy tej metodzie bez pojawienia się wiadomości (domyślnego prompta) ?
Czy jest możliwość wykrycia, w który przycisk kliknął użytkownik podczas pojawienia się prompta (czy opuszcza stronę lub czy zostaje na stronie) ?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Comandeer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Cytat
Mam dwa pytanie odnośnie metody jQuery onbeforeunload

Zacznijmy od tego, że to nie metoda i nie od jQuery (IMG:style_emoticons/default/wink.gif) beforeunload to zdarzenie zachodzące przed zamknięciem strony, natomiast onbeforeunload brzmi jak sposób podpięcie handlera do niego. Pewnie w jQuery jest do tego plugin – jak to ze wszystkim.
Cytat
Czy jest możliwość wykonania jakiegoś działania przy tej metodzie bez pojawienia się wiadomości (domyślnego prompta) ?

Problem polega na tym, że działanie tego zdarzenia jest skrajnie niespójne w różnych przeglądarkach i np w lisku AFAIR nie działa to, co jako jedyne działa w Chrome (i vice versa).
Cytat
Czy jest możliwość wykrycia, w który przycisk kliknął użytkownik podczas pojawienia się prompta (czy opuszcza stronę lub czy zostaje na stronie) ?

Prosty deal: jeśli strona dalej jest widoczna, to znaczy, że został. Jeśli nie… no wiadomo (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Wystarczy sprawdzić czy link kieruje do domeny tej samej czy nie i tyle.
Go to the top of the page
+Quote Post
olo707
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


nie bardzo rozumiem
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Prawdzasz href linku. Jeśli domena z href jest == domena serwisu lub nie ma domeny to znaczy że przechodzi między stronami, jeśli link ma inną domenę niż obecna serwisu znaczy że ucieka.
Go to the top of the page
+Quote Post
Comandeer
post
Post #6





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


@Pyton_000 tu chyba chodzi o to, w jaki przycisk w okienku confirm pacnął user – w "Leave page" czy "Stay on page".
Go to the top of the page
+Quote Post
com
post
Post #7





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


wyciszyć domyślne i dać swoje i po problemie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Comandeer
post
Post #8





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


@com problem polega na tym, że nie działa (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
com
post
Post #9





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


co nie działa?
Go to the top of the page
+Quote Post
Comandeer
post
Post #10





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Blokowanie domyślnego zdarzenia… Zawsze był problem z tym w wypadku beforeunload i nic się w tym zakresie nie zmieniło. W Chrome de facto działa jedynie taka bezsensowna konstrukcja:
Kod
window.addEventListener( 'beforeunload', function( e ) {
    e.returnValue = 'Pytanie';
} );

co sprowadza się do wyświetlania okienka confirm.
Go to the top of the page
+Quote Post
com
post
Post #11





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


nwm u mnie
[JAVASCRIPT] pobierz, plaintext
  1. window.onbeforeunload = function(event)
  2. {
  3. // whatever
  4. };
[JAVASCRIPT] pobierz, plaintext

Działa i confirm nie mam (IMG:style_emoticons/default/smile.gif)

Ten post edytował com 28.01.2016, 20:15:39
Go to the top of the page
+Quote Post
Comandeer
post
Post #12





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Ok, ale nie wszystkie działania da się tak zrobić, niestety, np.
Cytat
Blocked alert('a') during beforeunload.

Dlatego nigdy nie ma pewności, że to, co chcemy, się wykona.
Go to the top of the page
+Quote Post
com
post
Post #13





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


no owszem zgadzam się (IMG:style_emoticons/default/smile.gif) ja sobie tam zapisuje token do localstorage i działa (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
olo707
post
Post #14





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


Chciałem przy onbeforeunload za pomocą funkcji $.ajax wykonać jakieś działanie tylko jeśli użytkownik faktycznie wyjdzie ze strony czyli kliknie opuść stronę i nie mogę tego wykonać.
Go to the top of the page
+Quote Post
com
post
Post #15





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


no bo tak to sie raczej nie da, nie do tego to służy.
Go to the top of the page
+Quote Post
olo707
post
Post #16





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


a znasz jakiś sposób by wykonać tą akcję jeśli użytkownik opuści stronę przez jej skasowanie lub reload
Go to the top of the page
+Quote Post
Comandeer
post
Post #17





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


A Ty nie chcesz przypadkiem tego zrobić przy zdarzeniu unload?

Do tego stworzono wręcz osobne API (IMG:style_emoticons/default/biggrin.gif) https://developer.mozilla.org/en-US/docs/We...ator/sendBeacon
Go to the top of the page
+Quote Post
olo707
post
Post #18





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


słabo ze wsparciem tej funkcjonalności w przeglądarkach
Go to the top of the page
+Quote Post
Comandeer
post
Post #19





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Beacona tak, ale unload jest wspierany praktycznie wszędzie.
Go to the top of the page
+Quote Post
olo707
post
Post #20





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 30.03.2012

Ostrzeżenie: (0%)
-----


nie wiem czemu u mnie nie działa onload
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:12