如何使用Firefox CAPS策略阻止网页捕获按键?

时间:2011-04-04 07:17:11

标签: javascript javascript-events firefox4

我厌倦了阻止我的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 metakey组合有这个事件处理程序监听:

HTMLInputElement.onKeyPress
Window.numbersonly
Window.onKeyPress
Window.onkeypress
event.preventDefault

现在我们用的是Firefox 14而不是4.这种noAccess的支持是否已经更多可用/可用于结束像我这样的Firefox用户?

我正在寻找一个关于如何禁止使用CAPS进行按键事件捕获的答案,而不是搜索每个网站上的每个功能名称并逐个禁用功能。

3 个答案:

答案 0 :(得分:3)

为什么不重新定义函数,使其无效。打开mozilla的javascript控制台,然后重新定义违规功能。

numbersonly = function (a,b,c) {
  return true; 
}; 

答案 1 :(得分:2)

如果有令您烦恼的功能,只需打开一个javascript控制台并重新定义该功能即可 要在firefow上打开它,请按ctrl + shift + k

答案 2 :(得分:1)

只需在政策文件中添加一行:

// 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");

您可以在此处找到概述: https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/A_brief_guide_to_Mozilla_preferences?redirectlocale=en-US&redirectslug=A_Brief_Guide_to_Mozilla_Preferences#modifying

这里有一个完整的解释: http://www.mozilla.org/projects/security/components/ConfigPolicy.html