перезагрузите страницу по правому клику, но без контекстного меню - PullRequest
0 голосов
/ 22 октября 2011

Есть веб-приложение, в котором я хочу перезагрузить страницу по щелчку правой кнопкой мыши, и наряду с этим поведением я не хочу отображать контекстное меню.

Ответы [ 3 ]

0 голосов
/ 22 октября 2011

Самый короткий способ, вероятно, состоит в том, чтобы перехватить событие щелчка правой кнопкой мыши в теге body, например:

<html>
    <body oncontextmenu="window.location.reload(); return false;" onload="alert('loaded');">
        Testing 1 2 3 ...
    </body>
</html>

«return false» предотвращает появление контекстного меню по умолчанию.

Написание собственной функции обработчика событий даст вам больше контроля.

0 голосов
/ 22 октября 2011
<div id="nocontext">No context.</div>

window.onload = function(){
    document.getElementById('nocontext').oncontextmenu = function(){
        history.go(0);
        return false;
    }
}

Примечание : я скопировал то, что Джаред Фарриш опубликовал на своем jsfiddle и что Джеймс упомянул об использовании history.go (0); Я тестировал приведенный выше скрипт в Explorer 9, Firefox и Safari.

0 голосов
/ 22 октября 2011

Вы ищете что-то вроде этого:

 function click(e) {
  if (navigator.appName == 'Netscape' && e.which == 3) {
   window.location.reload();
   return false;
  } else {
   if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2)
    window.location.reload();
    return false;
   }
   return true;
  }
 document.onmousedown=click;
 document.oncontextmenu=new Function("window.location.reload();return false;"); // line added

Помимо перезагрузки вы можете использовать:

 history.go(0);
 window.location.href=window.location.href;
...