我如何检测到用户在 Google Chrome 扩展程序的当前活动选项卡中选择并复制了一些内容?
似乎没有合适的事件来处理 chrome.tabs 或 chrome.windows 中的剪贴板。
有没有办法通过内容脚本检测此类操作?
我如何检测到用户在 Google Chrome 扩展程序的当前活动选项卡中选择并复制了一些内容?
似乎没有合适的事件来处理 chrome.tabs 或 chrome.windows 中的剪贴板。
有没有办法通过内容脚本检测此类操作?
我找到了以下解决方案:
一个小的工作示例:
清单.json
{
"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);
背景.html
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.event == "copy") {
alert("copy detected");
}
sendResponse({});
});
您必须使用自己的事件处理程序在文档元素上捕获 onkeypress,检查 event.keyCode = 'C' (或 ascii 代码)和 event.ctrlKey = true
如果这是有效的,那么用户很可能复制了当前页面上的文本。
您还需要捕获 tab.updated 事件,以便知道何时绑定 onkeypress 事件。
Google Chrome Extensions 有一个实验性的 API 供您使用,它允许您执行复制、剪切和粘贴。它目前存在于 beta 版本中,因此很快,它将脱离实验阶段进入稳定状态。
http://code.google.com/chrome/extensions/dev/experimental.clipboard.html