我有这个功能
function smth() {
var container = null;
var newContainer = null;
if (window.getSelection) { // all browsers, except IE before version 9
alert("first if");
var selectionRange = window.getSelection();
if (selectionRange.rangeCount > 0) {
var range = selectionRange.getRangeAt(0);
container = range.commonAncestorContainer;
newContainer = container;
}
}
else {
if (document.selection) { // Internet Explorer
alert("second if");
var textRange = document.selection.createRange();
container = textRange.parentElement();
}
}
if (newContainer) {
return newContainer.nodeName;
}
else {
alert("Container object for the selection is not …Run Code Online (Sandbox Code Playgroud) 如果我有以下HTML:
<div class="content">
Vivamus <span>luctus</span> urna sed urna ultricies ac tempor dui sagittis.
</div>
Run Code Online (Sandbox Code Playgroud)
我在上面运行一个事件mouseup,看到所选文本的范围:
$(".content").on("mouseup", function () {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
if (start < end) {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
} else {
var start = window.getSelection().focusOffset;
var end = window.getSelection().baseOffset;
}
console.log(window.getSelection());
console.log(start + ", " + end);
});
Run Code Online (Sandbox Code Playgroud)
我Vivamus从内容中选择单词,它将记录1, 8,因为这是选择的范围.
但是,如果我选择单词urna,它将记录15, 20,但不会考虑<span>HTML 的元素.
反正对 …
我有许多需要重复填写的输入字段,因此我通常用它Tab来浏览表单。
字段具有需要前置的默认后缀值。当我通过鼠标单击将焦点集中在输入上时,它会按预期工作。
但是,当我在输入之间切换时,它会选择所有文本,这在我的情况下是不良行为。
看看这个:
function setCaretPosition(elem, caretPos) {
if (elem == null) return;
if (elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
} else if (elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
} else {
elem.focus();
}
}
$(document).ready(function() {
$('input').focus(function() {
setCaretPosition(this, 0);
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input1" value=" km/h" />
<input type="text" id="input2" value=" kg" />Run Code Online (Sandbox Code Playgroud)
使用选项卡导航时如何防止文本输入突出显示其内容?
setTimeout我更喜欢不使用(如果可能的话)的答案。