Я работаю над школьным заданием, где я пытаюсь увеличить видимость Ctrl + c
и Ctrl + p
. Сейчас моя цель - показать, какой текст был скопирован за секунду textarea
. Код у меня «работает», но он не идеален.
Вот мой код (который я получил от здесь и здесь ):
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>Ctrl+c Ctrl+v allowed</h3>
<textarea></textarea>
<br>
<br>
<h3>Clipboard</h3>
<textarea id="clipBoard"></textarea>
<script>
$(document).ready(function() {
var ctrlDown = false,
ctrlKey = 17,
cmdKey = 91,
vKey = 86,
cKey = 67;
$(document).keydown(function(e) {
if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = true;
}).keyup(function(e) {
if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = false;
});
// Document Ctrl + C/V
$(document).keydown(function(e) {
var clip = document.getElementById("clipBoard");
if (ctrlDown && (e.keyCode == cKey))
{
navigator.clipboard.readText()
.then(text => {
clip.value = text;
})
.catch(err => {
});
console.log("Document catch Ctrl+C");
}
if (ctrlDown && (e.keyCode == vKey))
{
console.log("Document catch Ctrl+V");
}
});
});
</script>
Есть 2 проблемы с этим решением.
Сначала веб-страница запрашивает разрешение на копирование. Я понимаю необходимость в этом, но есть ли способ обойти это?
Во-вторых, если пользователь говорит «нет», я не могу отобразить текст clipbaord, когда в буфере обмена есть что-то, что может просто испортитьзадание.
Есть ли способ обойти эти проблемы?
Спасибо!