Javascript JS/jQuery:如何突出显示或选择文本区域中的文本?
我不想突出显示文本(通过将背景颜色更改为黄色-否),我只想选择文本区域内的一部分文本,就像用户单击并按住单击,然后移动鼠标仅突出显示文本的一部分一样 怎么做?可能吗? 示例1与您的情况相关:Javascript JS/jQuery:如何突出显示或选择文本区域中的文本?,javascript,jquery,Javascript,Jquery,我不想突出显示文本(通过将背景颜色更改为黄色-否),我只想选择文本区域内的一部分文本,就像用户单击并按住单击,然后移动鼠标仅突出显示文本的一部分一样 怎么做?可能吗? 示例1与您的情况相关: function Select () { var input = document.getElementById ("myText"); if (input.selectionStart === undefined) { // Intern
function Select () {
var input = document.getElementById ("myText");
if (input.selectionStart === undefined) { // Internet Explorer
var inputRange = input.createTextRange ();
inputRange.moveStart ("character", 1);
inputRange.collapse ();
inputRange.moveEnd ("character", 1);
inputRange.select ();
}
else { // Firefox, Opera, Google Chrome and Safari
input.selectionStart = 1;
input.selectionEnd = 2;
input.focus ();
}
}
你可以使用这个插件
在用户“完成”键入后,您有一个回调函数,还有更多的事情。在非IE浏览器中,这很简单:您可以设置textarea的
selectionStart
和selectionEnd
属性的值,或者使用该函数(尽管我一直不清楚为什么会出现该方法:它似乎不必要)。然而,在IE中,它有点复杂。这是一个跨浏览器功能,可实现此功能:
var setInputSelection = (function() {
function offsetToRangeCharacterMove(el, offset) {
return offset - (el.value.slice(0, offset).split("\r\n").length - 1);
}
return function(el, startOffset, endOffset) {
el.focus();
if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "number") {
el.selectionStart = startOffset;
el.selectionEnd = endOffset;
} else {
var range = el.createTextRange();
var startCharMove = offsetToRangeCharacterMove(el, startOffset);
range.collapse(true);
if (startOffset == endOffset) {
range.move("character", startCharMove);
} else {
range.moveEnd("character", offsetToRangeCharacterMove(el, endOffset));
range.moveStart("character", startCharMove);
}
range.select();
}
};
})();
var textarea = document.getElementById("foo");
// Select the text between the second and third characters inclusive
setInputSelection(textarea, 1, 3);
如果对链接页面的相关部分进行总结,这会更有帮助。@Tim,我认为整个页面都与问题相关。我的观点是,如果没有链接,或者链接停止工作,这个答案将完全无用。