700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > javascript获取以及设置光标位置

javascript获取以及设置光标位置

时间:2019-07-01 21:27:07

相关推荐

javascript获取以及设置光标位置

javascript获取以及设置光标位置

转载:/js/1013

JavaScript 一. 获取光标位置:

// 获取光标位置function getCursortPosition (textDom) {var cursorPos = 0;if (document.selection) {// IE SupporttextDom.focus ();var selectRange = document.selection.createRange();selectRange.moveStart ('character', -textDom.value.length);cursorPos = selectRange.text.length;}else if (textDom.selectionStart || textDom.selectionStart == '0') {// Firefox supportcursorPos = textDom.selectionStart;}return cursorPos;}

二. 设置光标位置:

// 设置光标位置function setCaretPosition(textDom, pos){if(textDom.setSelectionRange) {// IE SupporttextDom.focus();textDom.setSelectionRange(pos, pos);}else if (textDom.createTextRange) {// Firefox supportvar range = textDom.createTextRange();range.collapse(true);range.moveEnd('character', pos);range.moveStart('character', pos);range.select();}}

三. 获取选中文字:

// 获取选中文字function getSelectText() {var userSelection, text;if (window.getSelection) {// Firefox supportuserSelection = window.getSelection();} else if (document.selection) {// IE SupportuserSelection = document.selection.createRange();}if (!(text = userSelection.text)) {text = userSelection;}return text;}

四. 选中特定范围的文本:

/*** 选中特定范围的文本* 参数:*textDom [JavaScript DOM String] 当前对象*startPos [Int] 起始位置*endPos [Int] 终点位置*/function setSelectText(textDom, startPos, endPos) {var startPos = parseInt(startPos),endPos = parseInt(endPos),textLength = textDom.value.length;if(textLength){if(!startPos){startPos = 0;}if(!endPos){endPos = textLength;}if(startPos > textLength){startPos = textLength;}if(endPos > textLength){endPos = textLength;}if(startPos < 0){startPos = textLength + startPos;}if(endPos < 0){endPos = textLength + endPos;}if(textDom.createTextRange){// IE Supportvar range = textDom.createTextRange();range.moveStart("character",-textLength);range.moveEnd("character",-textLength);range.moveStart("character", startPos);range.moveEnd("character",endPos);range.select();}else{// Firefox supporttextDom.setSelectionRange(startPos, endPos);textDom.focus();}}}

五. 在光标后插入文本:

/*** 在光标后插入文本* 参数:*textDom [JavaScript DOM String] 当前对象*value [String] 要插入的文本*/function insertAfterText(textDom, value) {var selectRange;if (document.selection) {// IE SupporttextDom.focus();selectRange = document.selection.createRange();selectRange.text = value;textDom.focus();}else if (textDom.selectionStart || textDom.selectionStart == '0') {// Firefox supportvar startPos = textDom.selectionStart;var endPos = textDom.selectionEnd;var scrollTop = textDom.scrollTop;textDom.value = textDom.value.substring(0, startPos) + value + textDom.value.substring(endPos, textDom.value.length);textDom.focus();textDom.selectionStart = startPos + value.length;textDom.selectionEnd = startPos + value.length;textDom.scrollTop = scrollTop;}else {textDom.value += value;textDom.focus();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。