Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function setSelRange(inputEl, selStart, selEnd) {
- if (inputEl.createTextRange) {
- var range = inputEl.createTextRange();
- range.collapse(true);
- range.moveEnd('character', selEnd);
- range.moveStart('character', selStart);
- range.select();
- //range.scrollIntoView();
- } else if (inputEl.setSelectionRange) {
- inputEl.focus();
- inputEl.setSelectionRange(selEnd, selEnd + 1);
- // ---- Firefox Workaround ----
- // Send a virtual key, which is the character immediately after the
- // selected text. It justs rewrites the same character so that no unnecessary changes
- // are made to the content.
- // When the selection is at the end of the textarea, an extra space is appended
- // because the inputEl.value.charCodeAt(selEnd) would otherwise cause an error.
- var evt = document.createEvent("KeyboardEvent");
- if (inputEl.value.length == selEnd) {
- evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32);
- } else {
- evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, inputEl.value.charCodeAt(selEnd));
- }
- inputEl.dispatchEvent(evt);
- inputEl.setSelectionRange(selStart, selEnd);
- }
- }
- function setCaretPosition(elemId, caretPos) {
- var elem = document.getElementById(elemId);
- if(elem != null) {
- if(elem.createTextRange) {
- var range = elem.createTextRange();
- range.move('character', caretPos);
- range.select();
- }
- else {
- if(elem.selectionStart) {
- elem.setSelectionRange(caretPos, caretPos);
- elem.focus();
- // Workaround for FF overflow no scroll problem
- // Trigger a "space" keypress.
- var evt = document.createEvent("KeyboardEvent");
- evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32);
- elem.dispatchEvent(evt);
- // Trigger a "backspace" keypress.
- evt = document.createEvent("KeyboardEvent");
- evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0);
- elem.dispatchEvent(evt);
- }
- else
- elem.focus();
- }
- }
- }
- setCaretPosition(document.getElementById("searchinput").id, document.getElementById("searchinput").value.length);
Add Comment
Please, Sign In to add comment