某些表单验证器会在某些输入字段上阻止 CTRL+C/CTRL+V。有没有快速的bookmarklet或者可以让我正确使用键盘的东西。或者,也许浏览器允许我覆盖某些页面的那种粗鲁行为?
编辑:我正在寻找的是类似的解决方案,例如可用于通过在页面上下文中执行 javascript 片段来启用右键单击页面的解决方案:
javascript:void(document.oncontextmenu=null)
到目前为止,我认为没有与 javascript 片段类似的解决方案,而不涉及像 Greasemonkey 这样的 3rd 方工具
最佳答案
这取决于它是如何完成的。此外,删除/禁用事件监听器总是有风险的,您可能会严重损害站点的功能 - 而且您永远不知道处理程序是做坏事还是好事,至少您根本不知道是否有处理程序。
因此,我浏览了“javascript 防止复制粘贴”的前几个 Google 搜索结果,发现大部分是愚蠢的脚本:Disable pasting text into HTML form , Prevent Copy, Cut and Paste into HTML Input Text Fields , not working example .那么脚本现在可以做什么:
然而,正如已经说过的,这并不能阻碍一切。
input
事件,非常有用,被this solution 巧妙利用以防止一次插入多个字符。因此,您需要决定是否要停止该事件并可能破坏应用程序。var evts = ["copy", "paste", "cut", "drag", "selectionstart?", "input?", …?];
var els = [document, document.body].concat(
[].slice.call(document.getElementsByTagName("input")),
[].slice.call(document.getElementsByTagName("textarea"))
);
function trap(e) { e.stopPropagation(); }
for (var i=0; i<evts.length; i++) {
var evt = "on"+evts[i].charAt(0).toUpperCase()+evts[i].substr(1);
for (var j=0; j<els.length; j++)
els[j][evt] = null; // remove handler
document.addEventListener(evts[i], trap, true); // capture phase
}
关于javascript: 防止页面阻塞 ctrl+c/ctrl+v,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216244/