网页如何阻止粘贴事件?

Mar*_*oth 6 html javascript jquery paste

在研究我的超级用户问题时如何有选择地禁用粘贴阻止剂我发现我遇到问题的特定网站似乎没有使用任何现有解决方案所期望的任何方法.

虽然使用的全球性解决方案dom.event.clipboardevents.enabled的偏好或禁用剪贴板操作插件在Firefox的工作,他们也同样遭受了问题,有有合法的原因,网站可能要挂接到onpaste(如谷歌文档格式文本支持或Facebook的链接处理),所以我不希望完全禁用该功能.

我们找到的解决方案(例如Derek Prior 在恼人的Web窗体上重新启用密码粘贴以及Chris Bailey 对恼人的Web窗体(v2)的改进的重新启用密码粘贴)使用bookmarklet来选择性地禁用粘贴阻止代码的功能似乎不适用于此页面.

这让我想知道,petplanet网站如何禁用粘贴,为什么现有解决方案不能与此网站一起使用,还有哪些方法可以防止粘贴阻塞?回答这些问题应该有助于我们编写一个全面的书签解决方案,因此这种有害的实践可以很好地解决.

Tim*_*ser 0

据我所知,你只能用 JavaScript 来“禁用”这样的东西。

我可以想象这并不是您正在寻找的答案,您可以这样做:

var keys = [];
window.addEventListener("keydown",
    function(e){
        keys[e.keyCode] = true;
        checkCombinations(e);
    },
false);

window.addEventListener('keyup',
    function(e){
        keys[e.keyCode] = false;
    },
false);

function checkCombinations(e){
    // try and prevent cntrl+v (paste)
    if(keys["v".charCodeAt(0)] && e.ctrlKey){
        alert("You're not allowed to paste");
        e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)

来源:获取 Javascript 中当前按下的所有按键的列表