我要在单击按钮时将文本粘贴到文本区域。但是我不知道如何从剪贴板获取文本。我想使用codemirror并使用函数:
function insertTextAtCursor(editor, text) {
var doc = editor.getDoc();
var cursor = doc.getCursor();
doc.replaceRange(text, cursor);
}
粘贴按钮上的文本单击。有人可以提示我如何从剪贴板获取文本吗?
答案 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>