2013-03-31 13 views
5

Używam timera na mojej stronie php, ale gdy niektóre odświeżają stronę, odliczanie czasu zaczyna się od początku. Chcę wyłączyć opcję f5 lub przeładować na mojej stronie php.Wyłączanie przeładowania i F5 na mojej stronie php

Dzięki z góry

+3

To nie jest (i nie powinno być) możliwe. – Maerlyn

+0

, w jaki sposób mogę zapobiec uruchamianiu mojego timera od początku, kiedy moja strona zostanie ponownie załadowana –

+0

Zapisz stan timera w 'onbeforeunload' i przywróć go w' onload'. – Maerlyn

Odpowiedz

8

przetestować go i to działa.

function disable_f5(e) 
{ 
    if ((e.which || e.keyCode) == 116) 
    { 
     e.preventDefault(); 
    } 
} 

$(document).ready(function(){ 
    $(document).bind("keydown", disable_f5);  
}); 
+0

Tak, to działa, ale wyłącza tylko F5. Co powiecie na CTRL + R i kliknięcie prawym przyciskiem myszy -> kliknij ikonę przeładowania? – Blackjack

2

Jest niemożliwe, aby wyłączyć taką funkcjonalność przeglądarki. Czy chciałbyś, żeby strona wyłączyła klawisz F5? Wątpię. Jeśli próbujesz zaimplementować tutaj pewien rodzaj zabezpieczeń, sugeruję przyjrzenie się właściwym metodom weryfikacji po stronie serwera.

2

Nie można tego zrobić - zachowanie to jest kontrolowane przez użytkownika końcowego i słusznie!

Najbliższą rzeczą, którą można zrobić, to wyświetlenie ostrzeżenia po zamknięciu lub odświeżeniu okna, które użytkownik może albo zdecydować się na ostrzeżenie i trzymać się aktualnej strony, albo zignorować żądanie i zamknąć/odświeżyć.

Zobacz tutaj: Alert when browser window closed accidentally

+0

Również fakt, że twoja strona została wygenerowana za pomocą PHP, jest nieistotny. PHP (język skryptowy po stronie serwera) generuje tekst wyjściowy z serwera, zwykle wysyłając języki po stronie klienta, takie jak HTML i JavaScript. Ważne jest tutaj wyjście z serwera, a nie sposób jego generowania. Mam nadzieję że to pomogło! – JoLoCo

+1

czyli jakakolwiek inna opcja, która uniemożliwiłaby mi rozpoczęcie mojego czasu od początku, kiedy można przeładować stronę. –

+2

Można przechowywać informacje o timerze w pliku cookie sesji, tak aby po odświeżeniu strony (lub nawet pozostawieniu wraca), pozostanie czasomierz. Ale to zupełnie inne pytanie! – JoLoCo