Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][html] opuszczanie serwisu
Forum PHP.pl > Forum > Przedszkole
Szkodnik95
Witam,

Posiadam stronę na której funkcjonuje kilka podstron.

Chciałbym wstawić skrypt który będzie pytał użytkownika czy jest pewien że chce zamknąć stronę.
Udało mi się znaleźć coś takiego:

Kod
        <script>
        window.onbeforeunload = function (wyjscie) {
        var strona = location.pathname;
        var re = "kopia"; // łańcuch string
        var a = strona.match(re);
        if (a==re)
        { return false }
        else {
         if (typeof wyjscie == 'undefined') {
           wyjscie = window.event;
         }
         if (wyjscie) {
           if(!confirm('Czy chcesz opuścić tę stronę')) return false
         }
        }
    }
    </script>


Niestety ten skrypt działa również gdy użytkownik przemieszcza się między podstronami, a tego chciałbym uniknąć.

Dopiero zaczynam swoją przygodę z js i html, dlatego proszę o wyrozumiałość.
Szkodnik95
Czyli ten kod który mam teraz muszę zamienić z tym https://fiddle.jshell.net/larryjoelane/qvm7eqvn/ ? dobrze rozumiem ?
!*!
Tak, musisz też dodać do strony bibliotekę jQuery
Comandeer
Hm, ale przecież przekierowań to nie wyłapie. Jedyne, co to robi, to wykrycie naciśnięcia F5.
!*!
Wykrywa też czy zamykasz okno, ale fakt zapomniałem o przechodzeniu na inne podstrony. Wystarczy zrobić ciastko które będzie sprawdzane w przypadku kliknięcia w link
trueblue
Może tak?

  1. var outsideBody=true;
  2. var isRefresh=false;
  3.  
  4. window.onbeforeunload=function () {
  5. if(outsideBody&&!isRefresh){
  6. return "Are you sure you want to leave?";
  7. }
  8. }
  9. document.addEventListener('mouseover',function(e){
  10. outsideBody=false;
  11. });
  12. document.addEventListener('mouseleave',function(e){
  13. outsideBody=true;
  14. });
  15. document.addEventListener('keydown',function(e){
  16. if(e.which===116||(e.ctrlKey&&e.which===82)){
  17. isRefresh=true;
  18. }
  19. });
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.