使用 jQuery 继续将文本区域文本复制到剪贴板
Continue copying textarea text to clipboard using jQuery
我在一段时间后实现自动保存数据到剪贴板的功能(在我的例子中,我习惯在 4 个空格后保存)。你可以建议间隔。
我已经按照this答案将textarea文本复制到剪贴板,这里使用单独的按钮将数据复制到剪贴板,但是我想连续保存。
到目前为止我尝试过的:
var spaceCount = 0;
$('#description').keyup(function(event) {
if (event.keyCode == 32) {
++spaceCount;
if (spaceCount % 4 == 3) {
$(this).select();
try {
var isCopied = document.execCommand('copy');
console.log(isCopied);
console.log("Copied to clipboard");
} catch (e) {
console.log("Error :Copying to clipboard");
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="description" cols="50" rows="4"></textarea>
问题是文本仍然处于选中状态。如何取消选择文本?正如我在一个答案中看到的那样,我不想使用要创建的任何元素。
或者您能否建议不使用任何插件的另一种解决方案?
您可以使用document.getSelection().removeAllRanges();
清除所选范围。我还添加了一些 jQuery 以将光标放回文本区域中文本的末尾。
var spaceCount = 0;
$('#description').keyup(function(event) {
if (event.keyCode == 32) {
++spaceCount;
if (spaceCount % 4 == 3) {
$(this).select();
try {
var isCopied = document.execCommand('copy');
console.log(isCopied);
console.log("Copied to clipboard");
// clear the selected range here
document.getSelection().removeAllRanges();
// put the cursor back at the end of the text
var val = $(this).val();
$(this).focus().val("").val(val);
} catch (e) {
console.log("Error :Copying to clipboard");
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="description" cols="50" rows="4"></textarea>
我在一段时间后实现自动保存数据到剪贴板的功能(在我的例子中,我习惯在 4 个空格后保存)。你可以建议间隔。
我已经按照this答案将textarea文本复制到剪贴板,这里使用单独的按钮将数据复制到剪贴板,但是我想连续保存。
到目前为止我尝试过的:
var spaceCount = 0;
$('#description').keyup(function(event) {
if (event.keyCode == 32) {
++spaceCount;
if (spaceCount % 4 == 3) {
$(this).select();
try {
var isCopied = document.execCommand('copy');
console.log(isCopied);
console.log("Copied to clipboard");
} catch (e) {
console.log("Error :Copying to clipboard");
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="description" cols="50" rows="4"></textarea>
问题是文本仍然处于选中状态。如何取消选择文本?正如我在一个答案中看到的那样,我不想使用要创建的任何元素。
或者您能否建议不使用任何插件的另一种解决方案?
您可以使用document.getSelection().removeAllRanges();
清除所选范围。我还添加了一些 jQuery 以将光标放回文本区域中文本的末尾。
var spaceCount = 0;
$('#description').keyup(function(event) {
if (event.keyCode == 32) {
++spaceCount;
if (spaceCount % 4 == 3) {
$(this).select();
try {
var isCopied = document.execCommand('copy');
console.log(isCopied);
console.log("Copied to clipboard");
// clear the selected range here
document.getSelection().removeAllRanges();
// put the cursor back at the end of the text
var val = $(this).val();
$(this).focus().val("").val(val);
} catch (e) {
console.log("Error :Copying to clipboard");
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="description" cols="50" rows="4"></textarea>