我厌倦了网站阻止我的CMD+c和CMD+v复制/粘贴。特别是当他们的javascript代码允许CONTROL+c和CONTROL+v通过而不被捕获时。
我想使用Firefox4的新的CAPS安全策略来创建一条规则,该规则为试图从任何元素的事件处理程序捕获onkeypress的任何站点提供"noAccess“,并阻止它们读取e.which。
下面是一段javascript代码片段,它阻止我将邮政编码粘贴到文本区域,因为站点作者只想在该字段中输入"numbers“,所以会捕获"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
现在我们的火狐版本是14而不是4了。对于像我这样的火狐终端用户来说,对这种noAccess的支持已经变得更可用/更有用了吗?
我正在寻找一个答案,关于如何禁止使用CAPS捕获按键事件,而不是在每个网站上搜索每个函数名称并逐个禁用函数。
发布于 2012-08-03 04:17:01
为什么不重新定义函数,让它什么都不做。打开mozilla的javascript控制台,只需重新定义出错的函数即可。
numbersonly = function (a,b,c) {
return true;
}; 发布于 2012-08-05 21:16:03
如果有一个函数困扰着你,只需打开javascript控制台并重新定义该函数即可。
要在firefow上打开它,请按ctrl+shift+k
发布于 2012-08-06 17:16:36
只需在策略文件中添加一行:
// This line creates a new policy named "stopnums"
user_pref("capability.policy.policynames", "stopnums");
// Add the offending site to the stopnums policy
user_pref("capability.policy.stopnums.sites", "http://www.exemple.com");
// Set the stopnums policy to deny a site from accessing "numbersonly"
user_pref("capability.policy.stopnums.numbersonly", "noAccess");这里有一个完整的解释:http://www.mozilla.org/projects/security/components/ConfigPolicy.html
https://stackoverflow.com/questions/5535600
复制相似问题