Skip to content Skip to sidebar Skip to footer

Ajax Post Onbeforeunload Doesn't Work

This code stores mouse movement coordinates in array and it should post it onbeforeunload. But it doesn't post. If I change name: moves to name: 'blabla' it works. Means that the p

Solution 1:

You can try this. It's a little example that I develop some months ago. In this case the coordinates are stored in a Text File, but you can replace this with an INSERT into a DataBase.

On the client Side put this:

var moves = ""; //Now an String to store the Coords

    $(document).ready(function(){
        //When you moves the mouse inside the Page then //concat the Coords into the String var and add a Line-Brak at the end
        $("html").mousemove(function(e){
            moves += (e.pageX + " x " + e.pageY + "\n");

        });

        //Here the magic happen: bind a function to onbeforeunload event that POST//the String to the server
        $(window).bind('beforeunload', function() {

            $.post("server.php",{name:moves});

        }); 

    });

Now you need a Page in the server side called server.php which contains

//Capture the String$cursorMoves = ($_POST['name']);

    $myFile = "testFile.txt";
    $fh = fopen($myFile, 'w');
    fwrite($fh, $cursorMoves);
    fclose($fh);

Solution 2:

onbeforeunload must return a string. However, the ajax request will be blocked by the dialog that is displayed. If the user accepts and leaves the page, it is likely that the request would be interrupted.

https://developer.mozilla.org/en/DOM/window.onbeforeunload

http://jsfiddle.net/sVU7K/1

Post a Comment for "Ajax Post Onbeforeunload Doesn't Work"