繁体   English   中英

使用JavaScript和Google Chrome API将剪贴板数据存储到变量中

[英]Storing clipboard data into a variable with JavaScript and the Google Chrome API

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

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

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

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

需要说明的是:我不是要将数据复制到剪贴板或从剪贴板粘贴数据。 我想将剪贴板的内容存储到一个变量中, 而不会以任何方式更改剪贴板的内容。

为了进一步阐明,我不能假定剪贴板数据在info.selectionText时恰好位于info.selectionText中。

如果不可能的话,我想我将不得不忍受它,但是似乎可以通过扩展来解决。


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

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

另外,是否有一种方法可以存储该数据,即使它不是字符串(例如图像)也是如此? 允许我执行此操作的解决方案无疑也将隐式地回答上述问题,但这不是必需的。 我主要是在寻找保存字符串数据,并希望保留格式的方法。

前段时间有一个实验性剪贴板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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM