在 javascript 中是否有一个函数可以取消选择所有选中的文本?我认为它应该是一个简单的全局函数,比如 document.body.deselectAll();之类的。
document.body.deselectAll();
对于 Internet Explorer,你可以使用 document.select 对象的 空方法:
空() ;
有关跨浏览器解决方案,请参阅以下答案:
在 Firefox 中清除一个选区
试试这个:
function clearSelection() { if (window.getSelection) {window.getSelection().removeAllRanges();} else if (document.selection) {document.selection.empty();} }
这将清除任何主要浏览器中常规 HTML 内容中的选定内容。它不会清除文本输入中的选区或 Firefox 中的 <textarea>。
<textarea>
这个版本可以清除任何选择,包括文本输入和文本区域:
演示: http://jsfiddle.net/SLQpM/23/
function clearSelection() { var sel; if ( (sel = document.selection) && sel.empty ) { sel.empty(); } else { if (window.getSelection) { window.getSelection().removeAllRanges(); } var activeEl = document.activeElement; if (activeEl) { var tagName = activeEl.nodeName.toLowerCase(); if ( tagName == "textarea" || (tagName == "input" && activeEl.type == "text") ) { // Collapse the selection to the end activeEl.selectionStart = activeEl.selectionEnd; } } } }
对于至少有10个字符的 textarea元素,下面的代码会做一个小的选择,然后在一秒半之后取消选择:
textarea
var t = document.getElementById('textarea_element'); t.focus(); t.selectionStart = 4; t.selectionEnd = 8; setTimeout(function() { t.selectionStart = 4; t.selectionEnd = 4; },1500);
这对我来说非常简单。
document.getSelection().collapseToEnd()
或者
document.getSelection().removeAllRanges()
来源: https://riptutorial.com/javascript/example/9410/deselect-everything-that-is-selected