javascript - 是否可以使用 JavaScript 实现剪贴板管理器?

标签 javascript html

我想为特定网站创建一个基于 JavaScript 的剪贴板管理器,但我不太确定从哪里开始。由于大多数网络浏览器不允许直接访问剪贴板内容,是否有其他方法可以存储用户从特定网页复制的剪贴板项目列表,而不存储任何重复项目?

最佳答案

您可以通过检测CTRL+C组合键来获取复制的文本,将选定的文本添加到数组中,然后从数组中删除任何重复的元素,这样就不会出现重复的剪贴板项目已存储。

如果您想存储用户复制的 HTML(而不仅仅是存储文本),您可以使用 JavaScript 库,例如 Rangy .

以下演示显示用户从页面复制的所有文本,而不显示任何重复的剪贴板项目:

http://jsfiddle.net/2RdRD/1/

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/

相关文章:

javascript - URL 编码是否足以使 href 属性免受 XSS 攻击?

html - "margin-top"在 css 中不工作

html - 跨多个容器使用 flex 订单属性

javascript - jquery 的可调整大小属性不起作用

html - 固定页眉与页内 anchor 重叠

html - 作为形状的 CSS 边框 DIV

javascript - 根据此 JSON 结果编写此 HTML(解析 JSON)

javascript - 如何在 Angular 2/4/5 中使用 PDF.js?

javascript - 无法制作动态增长的正则表达式

javascript - Youtube api 事件仅适用于第一个元素