1

我想知道是否可以将剪贴板的内容存储在字符串变量中。

以下消息来源指出,使用纯 JS 是不可能的,但我在希望 chrome API 能够做到这一点。(我正在开发一个 chrome 扩展)。

有一个clipboardRead许可,它会让你相信这是可能的,但它的描述只是:

如果扩展程序或应用程序使用 document.execCommand('paste'),则为必需。 来源

澄清一下:我不想将数据复制到剪贴板或从中粘贴数据。我想将剪贴板的内容存储到一个变量中,而不以任何方式改变剪贴板的内容。

为了进一步澄清,我不能假设剪贴板数据恰好info.selectionText在操作时存在。

如果这是不可能的,那么我想我将不得不忍受它,但它似乎可以通过扩展来完成。


编辑: 我想存储值的原因是因为我需要使用剪贴板来执行操作,但是我想在完成后恢复它的内容,所以用户不会丢失曾经在那里的任何东西。

如果我只是将数据粘贴到文本区域并从那里存储,那么当我将数据放回去时,用户将丢失他们拥有的任何格式,这总比没有好,但不是最佳的。

另外,有没有一种方法可以存储该数据,即使它不是字符串(例如图像)?允许我这样做的解决方案无疑也会隐含地回答上述问题,但不是必需的。我主要是在寻找保存字符串数据,并且更喜欢一种保持格式的方法。

4

1 回答 1

1

不久前有一个实验性的剪贴板 api,我猜他们虽然删除了它。您始终可以将内容粘贴到 textarea/contenteditable 并获取它的值:

function getClipboard() {    
    var el = document.createElement('textarea');
    document.body.appendChild(el);
    el.focus();
    document.execCommand('paste');
    var value = el.value;
    document.body.removeChild(el)
    return value;
}
console.log(getClipboard());
于 2015-01-12T18:33:17.393 回答