我想为特定网站创建一个基于 JavaScript 的剪贴板管理器,但我不太确定从哪里开始。由于大多数网络浏览器不允许直接访问剪贴板内容,是否有其他方法可以存储用户从特定网页复制的剪贴板项目列表,而不存储任何重复项目?
最佳答案
您可以通过检测CTRL+C
组合键来获取复制的文本,将选定的文本添加到数组中,然后从数组中删除任何重复的元素,这样就不会出现重复的剪贴板项目已存储。
如果您想存储用户复制的 HTML(而不仅仅是存储文本),您可以使用 JavaScript 库,例如 Rangy .
以下演示显示用户从页面复制的所有文本,而不显示任何重复的剪贴板项目:
var arrayOfCopiedText = new Array();
$(window).keyup(function (e) {
if (e.ctrlKey && e.keyCode === 67) {
arrayOfCopiedText[arrayOfCopiedText.length] = window.getSelection().toString();
//remove duplicates from the array
arrayOfCopiedText = removeDuplicates(arrayOfCopiedText);
alert("List of current clipboard items: " + JSON.stringify(arrayOfCopiedText));
}
});
function removeDuplicates(names) {
var uniqueNames = [];
$.each(names, function (i, el) {
if ($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
return uniqueNames;
}
关于javascript - 是否可以使用 JavaScript 实现剪贴板管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595855/