使用 JavaScript 和 Google Chrome API 将剪贴板数据存储到变量中
Storing clipboard data into a variable with JavaScript and the Google Chrome API
我想知道是否可以将剪贴板的内容存储在一个字符串变量中。
以下来源指出使用纯 JS 不可能做到这一点,但我 认为 希望 chrome API 能够实现。 (我正在开发 chrome 扩展)。
- How to read clipboard data in cross browser?
有一个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());
我想知道是否可以将剪贴板的内容存储在一个字符串变量中。
以下来源指出使用纯 JS 不可能做到这一点,但我 认为 希望 chrome API 能够实现。 (我正在开发 chrome 扩展)。
- How to read clipboard data in cross browser?
有一个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());