首先是背景:
在Mac OS X 10.5.8上使用Firefox 3.6.3时,当在标准文本区域输入文本时,组合热键Command+左箭头和Command+右箭头分别跳转到当前行的开头/结尾。然而,在使用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);
}
}
}, false );
安装/启用后,按下command+left | right箭头键会弹出一个带有相应代码的警告框,但是一旦关闭对话框,浏览器就会执行向前/向后移动页面的操作。我尝试使用evt.keyCode = 0设置一个新代码,但没有起作用。
因此,问题是,是否可以更新这个Greasemonkey脚本,以防止向后/向前翻页功能?
(注意:我也可以接受其他解决方案。不一定非得是Greasemonkey,这只是我尝试过的方向。真正的目标是能够禁用向前/向后热键功能。)