Javascript 网页如何防止粘贴事件?

Javascript 网页如何防止粘贴事件?,javascript,jquery,html,paste,Javascript,Jquery,Html,Paste,在研究我的超级用户问题时,我发现我遇到问题的特定站点似乎没有使用任何预期的方法或现有解决方案 虽然在FireFox中使用dom.event.clipboardevents.enabled首选项或插件的全局解决方案起作用,但它们也遇到了一个问题,即网站可能有正当理由希望连接到onpaste(例如谷歌文档富文本支持或facebook链接处理)所以我不想让这个功能被完全禁用 我们找到的解决方案(如Derek Preor的和Chris Bailey改进的)使用bookmarklets选择性地禁用的功能似

在研究我的超级用户问题时,我发现我遇到问题的特定站点似乎没有使用任何预期的方法或现有解决方案

虽然在FireFox中使用
dom.event.clipboardevents.enabled
首选项或插件的全局解决方案起作用,但它们也遇到了一个问题,即网站可能有正当理由希望连接到
onpaste
(例如谷歌文档富文本支持或facebook链接处理)所以我不想让这个功能被完全禁用

我们找到的解决方案(如Derek Preor的和Chris Bailey改进的)使用bookmarklets选择性地禁用的功能似乎无法使用


这让我想知道,petplanet网站是如何禁用粘贴的,为什么现有的解决方案不能与该网站协同工作,还有什么其他方法可以防止粘贴阻塞?回答这些问题应该可以帮助我们编写一个全面的bookmarklet解决方案,因此这种有害的做法可以永远解决。

据我所知,您只能使用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();
    }
}

来源:

您可以使用jQuery
粘贴
事件来侦听事件,并使用
prevenrDefault()
来防止事件发生

在第页中,他们使用了下面的jQuery

$('#pwd, #pwd2').bind('paste',function(e){
    e.preventDefault();
    alert('Please type your password.')
});    
打开Firebug,转到脚本选项卡,然后搜索字符串
请键入密码。
(Firebug搜索栏,而不是浏览器搜索栏)。您将找到上述代码。代码为logon.asp


禁用它,只需使用
off
方法,如
$('#id1').off()
。这将解除具有
id='id1'