firefox - 使用 Greasemonkey 在 Firefox 中取消页面前进/后退热键

标签 firefox greasemonkey hotkeys

首先是背景:

在 Mac OS X 10.5.8 上的 Firefox 3.6.3 中,当在标准中输入文本时,Command+LeftArrow 和 Command+RightArrow 的热键组合分别将光标跳转到当前行的开头/结尾。但是,在使用CKEditor、FCKEditor和YUI Editor时,Firefox似乎并不能完全识别出它是一个文本区域。相反,它会退回到那些在浏览器历史记录中后退/前进的热键的默认功能。发生这种情况后,当您返回页面时,编辑器中的文本也会被清除,从而很容易丢失正在处理的内容。

我正在尝试编写一个 greasemonkey 脚本,我可以使用它来捕获事件并防止页面向前/向后跳转被执行。到目前为止,我已经能够看到以下事件在 GreaseMonkey 中用作 .user.js 脚本:

document.addEventListener('keypress', function (evt) {
// grab the meta key
var isCmd = evt.metaKey;

// check to see if it is pressed
if(isCmd)
{
  // if so, grab the key code;
  var kCode = evt.keyCode;

  if(kCode == 37 || kCode == 39)
  {
    alert(kCode);
  }
}

}, 错误的 );

安装/启用后,按 command+向左|向右箭头键会弹出带有相应代码的警报,但一旦对话框关闭,浏览器就会执行页面向前/向后移动。我尝试使用 evt.keyCode = 0 设置新代码,但这没有用。

那么,问题是,是否可以更新此 Greasemonkey 脚本以防止后退/前进页面移动?

(注意:我也对其他解决方案持开放态度。不必是 Greasemonkey,这只是我尝试过的方向。真正的目标是能够禁用前进/后退热键功能。)

最佳答案

alert(kCode); 之后添加 return false; 大多数时候应该这样做。

可能还要加上:

evt.preventDefault();
and/or
evt.stopPropagation();

这两个功能适用于大多数 FF 版本,但我不确定 Mac。 此外,通常,您的 func 将在编辑器脚本之后触发。但是,如果它之前触发,它可能会禁用该光标跳转。

关于firefox - 使用 Greasemonkey 在 Firefox 中取消页面前进/后退热键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2937277/

相关文章:

firefox - 无法安装该附加组件,因为它似乎已损坏

javascript - 使用相同的用户脚本在不同的 URL 运行不同的代码

keyboard-shortcuts - 在 SOAPUI 中使用键盘切换请求和响应

javascript - Firefox:使用未知域的相对路径的 html 弹出窗口不起作用

python - 如何在 python 中使用 Selenium 提交 Https 身份验证

css - 无法删除某些网页上的灰度过滤器

XCode 5 -- 跳转到上一个光标位置

java - eclipse 中的快速转换快捷方式

css - CSS 掩码中使用的 SVG 文本在 Firefox 中不起作用

javascript - 从页面的函数中提取一个值......没有 unsafeWindow?