Javascript 获取用户从网页复制的文本
使用JavaScript,是否可以检测用户何时从网页复制文本,然后将复制的文本存储在数组中,而不覆盖CTRL+V组合键,也不阻止复制文本Javascript 获取用户从网页复制的文本,javascript,html,Javascript,Html,使用JavaScript,是否可以检测用户何时从网页复制文本,然后将复制的文本存储在数组中,而不覆盖CTRL+V组合键,也不阻止复制文本 换句话说,是否可以在不覆盖该组合键的默认行为的情况下检测组合键?您可以轻松获取复制和粘贴击键,如何处理它们取决于您自己 document.addEventListener("keyup", function(e) { if (e.ctrlKey && e.keyCode == 67) { console.log("CTRL + C"
换句话说,是否可以在不覆盖该组合键的默认行为的情况下检测组合键?您可以轻松获取复制和粘贴击键,如何处理它们取决于您自己
document.addEventListener("keyup", function(e) {
if (e.ctrlKey && e.keyCode == 67) {
console.log("CTRL + C");
}
if (e.ctrlKey && e.keyCode == 86) {
console.log("CTRL + V");
}
});
您可以轻松地抓取复制和粘贴击键,如何处理它们取决于您自己
document.addEventListener("keyup", function(e) {
if (e.ctrlKey && e.keyCode == 67) {
console.log("CTRL + C");
}
if (e.ctrlKey && e.keyCode == 86) {
console.log("CTRL + V");
}
});
在jQuery中使用keyup侦听器并获取事件参数ctrlKey和keyCode,然后通过window.getSelection检索所选文本:
除非您在侦听函数中返回false,或者在jQuery中返回preventDefault,否则不会干扰按键的默认行为,例如,preventDefault,它实际上和在代码中的作用与return false相同。在jQuery中使用keyup侦听器并获取事件参数ctrlKey和keyCode,然后通过window.getSelection检索所选文本:
除非您在侦听函数中返回false,或者在jQuery中返回preventDefault,否则不会干扰按键的默认行为,例如,preventDefault,它实际上和在代码中的作用与return false相同。我使用过一个库,该库捕捉复制/剪切事件并存储每一段复制/剪切文本:。它不会干扰正常的复制/剪切行为,它允许您为复制/剪切事件设置处理程序,并且您可以检索用户复制/剪切的所有文本的整个数组 目前,只有当用户同时按下两个键时,同时按下“ctrl”和“c”键的公认答案才有效。Chrome或者Windows对于ctrl+c所涉及的时间安排似乎更为宽容,因为在点击c之前点击ctrl仍然可以成功复制数据。即使Chrome再次出现,也可能是Windows的东西说您已经成功复制了,JavaScript事件将无法捕获该操作 用法示例:
CopyMe.setCopyCallback(function(copiedText){
// Do something here when text is copied
alert(copiedText);
});
CopyMe.setCutCallback(function(cutText){
// Do something here when text is cut
alert(cutText);
});
var allCopiedCutText = CopyMe.getAllCopiedOrCutText();
var lastCopiedCutText = CopyMe.getLastCopiedOrCutText();
我曾在一个库中工作,该库捕获复制/剪切事件并存储每一段复制/剪切的文本:。它不会干扰正常的复制/剪切行为,它允许您为复制/剪切事件设置处理程序,并且您可以检索用户复制/剪切的所有文本的整个数组 目前,只有当用户同时按下两个键时,同时按下“ctrl”和“c”键的公认答案才有效。Chrome或者Windows对于ctrl+c所涉及的时间安排似乎更为宽容,因为在点击c之前点击ctrl仍然可以成功复制数据。即使Chrome再次出现,也可能是Windows的东西说您已经成功复制了,JavaScript事件将无法捕获该操作 用法示例:
CopyMe.setCopyCallback(function(copiedText){
// Do something here when text is copied
alert(copiedText);
});
CopyMe.setCutCallback(function(cutText){
// Do something here when text is cut
alert(cutText);
});
var allCopiedCutText = CopyMe.getAllCopiedOrCutText();
var lastCopiedCutText = CopyMe.getLastCopiedOrCutText();
不,我想你不行。Javascript中对剪贴板的访问是一个安全问题。您可以使用keyup捕捉键盘,但无法查看剪贴板中的内容或向其发送文本。我不会尝试以任何方式访问剪贴板。我只是尝试检测CTRL+C组合,而不覆盖其默认行为。此外,它可以获得当前突出显示的文本使用你可以这样做,创建一种黑客。伪代码:在control+C上,将所选文本推送到堆栈上。对每个控件+C执行此操作,在控件+V上,从堆栈中弹出最后一个元素。后进先出你为什么不试试呢。我认为应该行得通。默认行为仍然存在,除非你阻止它。不,我认为你不能。Javascript中对剪贴板的访问是一个安全问题。您可以使用keyup捕捉键盘,但无法查看剪贴板中的内容或向其发送文本。我不会尝试以任何方式访问剪贴板。我只是尝试检测CTRL+C组合,而不覆盖其默认行为。此外,它可以获得当前突出显示的文本使用你可以这样做,创建一种黑客。伪代码:在control+C上,将所选文本推送到堆栈上。对每个控件+C执行此操作,在控件+V上,从堆栈中弹出最后一个元素。后进先出你为什么不试试呢。我认为应该行得通。默认行为将保留,除非您阻止它。