使用Javascript从剪贴板获取文本

时间:2020-01-30 21:06:59

标签: javascript codemirror

我要在单击按钮时将文本粘贴到文本区域。但是我不知道如何从剪贴板获取文本。我想使用codemirror并使用函数:

function insertTextAtCursor(editor, text) {
    var doc = editor.getDoc();
    var cursor = doc.getCursor();
    doc.replaceRange(text, cursor);
}

粘贴按钮上的文本单击。有人可以提示我如何从剪贴板获取文本吗?

1 个答案:

答案 0 :(得分:0)

您可以在支持navigator.clipboard.readText()的浏览器中使用它。

var editor = CodeMirror.fromTextArea(document.querySelector('textarea'), {
  lineNumbers: true
});

document.querySelector("button").addEventListener("mousedown", function(e) {
  e.preventDefault()
  if (window.navigator) {
    navigator.clipboard.readText().then(setCMText);
  }
});

function setCMText(text) {
  if (editor.getSelection().length) {
    editor.replaceSelection(text);
  } else {
    var doc = editor.getDoc();
    var cursor = doc.getCursor();
    var pos = {
      line: cursor.line,
      ch: cursor.ch
    }
    doc.replaceRange(text, pos);
  }
}
<link href="https://cdn.jsdelivr.net/npm/codemirror@5.51.0/theme/ambiance.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/codemirror@5.51.0/lib/codemirror.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/codemirror@5.51.0/lib/codemirror.min.js"></script>

<button>Paste</button>
<textarea>
Hello World
</textarea>