Praveen
Praveen

Reputation: 43

Blocking F5 refresh not working in Chrome

Here is the code that worked earlier, but now doesn't work anymore. Does anyone know why?

document.onkeydown = function()
 {
      if(event.keyCode==116) {
          event.keyCode=0;
          event.returnValue = false;
      }
}

// To avoid refresh, using context menu of the browser
document.oncontextmenu = function() {event.returnValue = false;}

Upvotes: 0

Views: 271

Answers (3)

Vasu Kuncham
Vasu Kuncham

Reputation: 548

try this

 <script>
 window.onload = function () {
    document.onkeydown = function (e) {
        return (e.which || e.keyCode) != 116;
    };
 }
</script>

Upvotes: 0

Sindhoor
Sindhoor

Reputation: 548

Recieve the event in your function

document.onkeydown = function(event)
 {
          if(event.keyCode==116) {
          event.keyCode=0;
          event.returnValue = false;
          }
}

Or Try preventing the action by that key

document.onkeydown = function(event)
 {
          if(event.keyCode==116) {
          event.preventDefault();          
          }
}

Upvotes: 0

Martijn
Martijn

Reputation: 16103

You refer to event in your functions, but you never actually pass it:

document.onkeydown = function(){ /* ... */ }
document.oncontextmenu = function() {event.returnValue = false; }

// should be
document.onkeydown = function(event){ /* ... */ }
document.oncontextmenu = function(event) {event.returnValue = false; }

In the first version of the oncontextmenu you set 'returnvalue' of object 'event' to false, but it doesnt exist because you never actually pass it on to the function.

Upvotes: 1

Related Questions