我厌倦了阻止我的 CMD+c 和 CMD+v 复制/粘贴的网站。尤其是当他们的 javascript 代码允许 CONTROL+c 和 CONTROL+v 通过而不被捕获时。
我想使用 Firefox 4 的新 CAPS 安全策略来创建一个规则,该规则为任何试图从任何元素上的事件处理程序捕获 onkeypress 的站点提供“noAccess”,并阻止它们读取 e.which。
这是一个 javascript 代码片段,它阻止我将邮政编码粘贴到文本区域,因为网站作者希望该字段中的“仅数字”,因此“CMD + v”(粘贴)被捕获并丢弃在地板上。
function numbersonly(myfield, e, dec)
var key, keychar;
if (e) key = e.which;
else return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) ||
(key==9) || (key==13) || (key==27) )
return true;
else if ((("0123456789").indexOf(keychar) > -1))
return true;
else return false;
}
然后 HTML 代码将具有:
<INPUT NAME="zipcode" onKeyPress="return numbersonly(this, event)">
如何在 Firefox4 中设置一个策略来禁用站点调用此事件处理函数的能力?
使用“Control de Scripts”扩展,我尝试将以下“块”添加到影响所有站点的“默认”策略中,但没有一个允许我在专注于具有此的文本字段时使用 Firefox 元键组合事件处理程序监听:
HTMLInputElement.onKeyPress
Window.numbersonly
Window.onKeyPress
Window.onkeypress
event.preventDefault
现在我们升级到 Firefox 14 而不是 4。对于像我这样的最终 Firefox 用户来说,对这种 noAccess 的支持是否变得更加可用/可用?
我正在寻找有关如何使用 CAPS 禁止按键事件捕获的答案,而不是在每个网站上查找每个函数名称并逐个禁用函数。