I haven't thought this through all the way, but one thing you might experiment with is a window.onbeforeunload event handler, which gets called when the user navigates away from the window and ALSO when the user simply refreshes the window with F5 or whatever. One possibility: If the handler returns a string, the browser lets the user block the refresh and stay on the current page.
window.onbeforeunload = function ()
return "Are you sure you want to return to the home page?";