javascript - 有没有办法使用 Javascript 在 IE 上捕获/覆盖 Ctrl-R 或 F5?

标签 javascript internet-explorer

我想捕获浏览器上的 Ctrl-RF5 快捷方式以防止它执行浏览器刷新,而是执行自定义刷新。

我能够在 Safari 和 FF 上捕获 Ctrl-R 使用:

document.onkeypress = function(e){
      if ((e.ctrlKey || e.metaKey) && e.keyCode == 114) // Ctrl-R
    e.preventDefault();
}

但这在 IE 上不起作用。有什么办法可以在 IE 上执行此操作?

更新:对于那些首先问我为什么这样做的人:我只是想做一个自定义应用程序刷新,但想避免使用“刷新”按钮,因为我有点不鼓励使用刷新(我们有一个整页的 flex 应用程序)。我们最终切换到 F8,因为 F5 太难在所有浏览器上运行。

最佳答案

打开 JavaScript

http://www.openjs.com/scripts/events/keyboard_shortcuts/

对于某些键(F1、F4),您必须打开一个没有地址栏的新浏览器窗口。

示例

打开一个新窗口,没有装饰:

window.open( 'webpage.html', 'TLA', 
'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=665' );

JavaScript to use the library:

var FALSE_FUNCTION = new Function( "return false" );

/**
 * Called to disable F1, F3, and F5.
 */
function disableShortcuts() {
  // Disable online help (the F1 key).
  //
  document.onhelp = FALSE_FUNCTION;
  window.onhelp = FALSE_FUNCTION;

  // Disable the F1, F3 and F5 keys. Without this, browsers that have these
  // function keys assigned to a specific behaviour (i.e., opening a search
  // tab, or refreshing the page) will continue to execute that behaviour.
  //
  document.onkeydown = function disableKeys() {
    // Disable F1, F3 and F5 (112, 114 and 116, respectively).
    //
    if( typeof event != 'undefined' ) {
      if( (event.keyCode == 112) ||
          (event.keyCode == 114) ||
          (event.keyCode == 116) ) {
        event.keyCode = 0;
        return false;
      }
    }
  };

  // For good measure, assign F1, F3, and F5 to functions that do nothing.
  //
  shortcut.add( "f1", FALSE_FUNCTION );
  shortcut.add( "f3", FALSE_FUNCTION );
  shortcut.add( "f5", FALSE_FUNCTION );
}

webpage.html 中:

<body onload="disableShortcuts();">

关于javascript - 有没有办法使用 Javascript 在 IE 上捕获/覆盖 Ctrl-R 或 F5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1400528/

相关文章:

javascript - 从 { 到 } 反转大括号,反之亦然

javascript - 在 JSON 字符串中分隔 PHP 变量

java - 即使在 DD 中声明了错误页面,也会出现 Http 错误代码 500

javascript - 在除 IE 之外的所有浏览器中显示 div

c# - 在IE9中选择 'Open'时Asp.Net下载文件报错

internet-explorer - 如何获得具有焦点的 IE 选项卡的句柄?

Javascript - 确认有多少参数?

javascript - 在每次迭代中使用 Jquery 更改新创建的 DIv 的样式

CSS 下拉菜单未在 IE 中显示

javascript - 在内部点击时隐藏弹出窗口