Tworzę aplikację internetową za pomocą asp.net mvc. Chcę wykryć ręczne odświeżanie przez użytkownika,

Ale nie jestem w stanie uzyskać następujących wydarzeń

1: przed

2: Unload.

Następujący sposób próbowałem

1

$(window).on('beforeunload', function () {
    pageCleanup();
});

2

$(window).on("unload", function () {
    pageCleanup();
});

function pageCleanup() {  
    alert(1)
}

3

window.addEventListener("unload", logData);

function logData() {
    alert(1)
}

4

$(window).unload(function () {
    alert('1');
});

Powyższy jest przykładem z alertem, chcę mieć połączenie AJAX w funkcji rozładowywania

Ale żaden z nich nie wydaje się wykonywać, gdy użytkownik naciska dowolnego rodzaju odświeżania (F5, Ctrl-Shift-R, Ctrl-R, z zakładki URL)

Co mam teraz spróbować?

2
Ibrahim Shaikh 21 luty 2019, 09:48

2 odpowiedzi

Najlepsza odpowiedź

Cześć raz i daj mi znać

<html>
<head>
<title>Refresh a page in jQuery</title>

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

</head>

<body>

<h1>Stop a page from exit with jQuery</h1>

<button id="reload">Refresh a Page in jQuery</button>

<script type="text/javascript">

    $('#reload').click(function() {

        location.reload();

    });

    $(window).bind('beforeunload', function(){
        return '>>>>>Before You Go<<<<<<<< \n bro!!Working';
    });

</script>

</body>
</html>
5
abhinavxeon 21 luty 2019, 07:08

Powinieneś użyć bind dla beforeunload:

$(window).bind("beforeunload", () => alert(1));
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
2
Jack Bashford 21 luty 2019, 07:12