Google chrome Google Chrome扩展:如何检测复制操作(Ctrl-C和编辑复制)?
如何检测到用户在Google Chrome扩展中当前活动选项卡中选择并复制了某些内容 在chrome.tabs或chrome.windows中似乎没有处理剪贴板的合适事件Google chrome Google Chrome扩展:如何检测复制操作(Ctrl-C和编辑复制)?,google-chrome,copy-paste,google-chrome-extension,Google Chrome,Copy Paste,Google Chrome Extension,如何检测到用户在Google Chrome扩展中当前活动选项卡中选择并复制了某些内容 在chrome.tabs或chrome.windows中似乎没有处理剪贴板的合适事件 是否有方法通过内容脚本检测此类操作?您必须使用自己的事件处理程序在文档元素上捕获onkeypress,检查event.keyCode='C'(或ascii代码)以及event.ctrlKey=true 如果这是有效的,则可能是用户复制了当前页面上的文本 您还需要捕获tab.updated事件,以便知道何时绑定onkeypres
是否有方法通过内容脚本检测此类操作?您必须使用自己的事件处理程序在文档元素上捕获onkeypress,检查event.keyCode='C'(或ascii代码)以及event.ctrlKey=true 如果这是有效的,则可能是用户复制了当前页面上的文本
您还需要捕获tab.updated事件,以便知道何时绑定onkeypress事件。Google Chrome Extensions提供了一个实验性API供您使用,该API允许您执行复制、剪切和粘贴。它目前存在于beta版本中,所以很快,它将脱离实验进入稳定状态
我找到了以下解决方案:
{
"background_page": "background.html",
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["oncopy.js"]
}
]
}
oncopy.js
// on copy event, send a message to background.html
function onCopy(e) {
chrome.extension.sendRequest({event: "copy"});
}
//register event listener for copy events on document
document.addEventListener('copy',onCopy,true);
background.html
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.event == "copy") {
alert("copy detected");
}
sendResponse({});
});
谢谢,这是检测通过键盘快捷键执行的复制事件的良好开端。在Javascript之外,我可能需要一种不同的机制来检测编辑菜单->复制调用。不幸的是,此API似乎只允许扩展执行副本。我正在寻找一种在用户启动复制时得到通知的方法。扩展无法做到这一点。要执行复制/粘贴/剪切扩展,请使用上面提到的剪贴板API。如果要在用户启动副本时侦听,则不能使用扩展。由于剪贴板API是实验性的,您可以发送您的问题,为什么需要侦听复制事件。您可以将您的电子邮件发送到chromium-extensions@chromium.org小组:如果你发现这个答案晚了9年(像我一样),那么。