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

标签 javascript html google-chrome google-chrome-extension clipboarddata

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

以下来源指出,使用纯 JS 不可能实现这一点,但我认为希望 chrome API 能够实现这一点。 (我正在开发一个 chrome 扩展)。

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

Required if the extension or app uses document.execCommand('paste'). source

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

为了进一步澄清,我不能假设操作时剪贴板数据恰好位于 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());

关于javascript - 使用 JavaScript 和 Google Chrome API 将剪贴板数据存储到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27908309/

相关文章:

javascript - for 循环内的 promise

Javascript - 饮食偏好的条件格式

javascript - 使用 ReactPDF 加载 React 时出现 PDF 错误

javascript - window.open 高度在 Google Chrome 中与其他浏览器不同

javascript - 我可以在 app.js 文件中使用 Handlebars 模板吗

jquery - 如何让固定的div动态占据整页

html - 使用类和 ID

html - CSS 去除表格的边框

html - 固定按钮在谷歌浏览器中消失在元素后面

google-chrome - Chrome 命令行参数在 Windows 10 上不起作用