Guest User

Untitled

a guest
Jun 24th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. function setSelRange(inputEl, selStart, selEnd) {
  2. if (inputEl.createTextRange) {
  3. var range = inputEl.createTextRange();
  4. range.collapse(true);
  5. range.moveEnd('character', selEnd);
  6. range.moveStart('character', selStart);
  7. range.select();
  8. //range.scrollIntoView();
  9. } else if (inputEl.setSelectionRange) {
  10. inputEl.focus();
  11. inputEl.setSelectionRange(selEnd, selEnd + 1);
  12. // ---- Firefox Workaround ----
  13. // Send a virtual key, which is the character immediately after the
  14. // selected text. It justs rewrites the same character so that no unnecessary changes
  15. // are made to the content.
  16. // When the selection is at the end of the textarea, an extra space is appended
  17. // because the inputEl.value.charCodeAt(selEnd) would otherwise cause an error.
  18. var evt = document.createEvent("KeyboardEvent");
  19. if (inputEl.value.length == selEnd) {
  20. evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32);
  21. } else {
  22. evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, inputEl.value.charCodeAt(selEnd));
  23. }
  24. inputEl.dispatchEvent(evt);
  25. inputEl.setSelectionRange(selStart, selEnd);
  26.  
  27. }
  28. }
  29.  
  30. function setCaretPosition(elemId, caretPos) {
  31. var elem = document.getElementById(elemId);
  32.  
  33. if(elem != null) {
  34. if(elem.createTextRange) {
  35. var range = elem.createTextRange();
  36. range.move('character', caretPos);
  37. range.select();
  38. }
  39. else {
  40. if(elem.selectionStart) {
  41. elem.setSelectionRange(caretPos, caretPos);
  42. elem.focus();
  43. // Workaround for FF overflow no scroll problem
  44. // Trigger a "space" keypress.
  45. var evt = document.createEvent("KeyboardEvent");
  46. evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32);
  47. elem.dispatchEvent(evt);
  48. // Trigger a "backspace" keypress.
  49. evt = document.createEvent("KeyboardEvent");
  50. evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0);
  51. elem.dispatchEvent(evt);
  52. }
  53. else
  54. elem.focus();
  55. }
  56. }
  57. }
  58. setCaretPosition(document.getElementById("searchinput").id, document.getElementById("searchinput").value.length);
Add Comment
Please, Sign In to add comment