![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałem zrobić sobie zliczanie pobytu gości(!) na stronie, którzy weszli z linka PP. Dostają oni unikalne ciasteczko i dla nich dodawane jest do części head skrypt JS, który przy unload otwiera po ajaxie połączenie do pliku php i tak zliczam czas pobytu na stronie. Problem z tym, że Chrome nie obsługuje funkcji unload() z jQuery... Nie potrafię pisać w czystym JS i mam problem jak rozwiązać to :/ W tej chwili trochę przerobiłem skrypt, ale nie działa on teraz i w Operze i w Chrome :/
Może ktoś wie jak to rozwiązać? Może inny sposób zliczania pobytu? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
W poniższym skrypcie dostosuj ścieżki.
Według http://www.w3schools.com/jsref/event_onunload.asp powinno działać wszędzie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Nie powinno być
zamiast:
Mam pewne wątpliwości ,czy w taki sposób jaki zaprezentowałeś, można mieszać dane.Blok JS to nie blok PHP, więc jeśli się nie mylę to $_COOKIE['hash'] będzie błędnie interpretowany w skrypcie js . |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisałem, część ta jest dodawana przez skrypt tylko dla wybranych osób. Więc zmienna z PHP jest tutaj wrzucana i dopiero leci do usera dokument, już z normalną wartością.
Co do skryptu: niestety, ale i Opera i Chrome opierają się temu. Ten post edytował Kużdo 30.08.2012, 20:18:36 |
|
|
-satanek- |
![]()
Post
#5
|
Goście ![]() |
Spróbuj dla chrome/opery ustawić typ zapytania na synchroniczny:
Kod if($.browser.chrome) { window.onbeforeunload = function(){ $.ajax({ type: "POST", async: false, url: "plik.php", data: "cookie='.$_COOKIE['hash'].'" }); }; } Nie testowane, ale istnieje szansa że zadziała (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 21:48 |