questlab/www/js/misc.js
2015-05-12 09:49:53 +02:00

52 lines
1.5 KiB
JavaScript

/**
* http://stackoverflow.com/questions/1064089/inserting-a-text-where-cursor-is-using-javascript-jquery/1064139#1064139
*/
function getCaret(textareaId)
{
var textarea = document.getElementById(textareaId);
var strPos = 0;
if(textarea.selectionStart || textarea.selectionStart == '0') {
strPos = textarea.selectionStart
}
else if(document.selection)
{
textarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -textarea.value.length);
strPos = range.text.length;
}
else {
strPos = -1;
}
return strPos;
}
function insertAtCaret(textareaId, caret, text)
{
var textarea = document.getElementById(textareaId);
var scrollPos = textarea.scrollTop;
var front = (textarea.value).substring(0, caret);
var back = (textarea.value).substring(caret, textarea.value.length);
textarea.value = front + text + back;
caret = caret + text.length;
if(textarea.selectionStart || textarea.selectionStart == '0')
{
textarea.selectionStart = caret;
textarea.selectionEnd = caret;
textarea.focus();
}
else if(document.selection)
{
textarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -textarea.value.length);
range.moveStart('character', caret);
range.moveEnd('character', 0);
range.select();
}
textarea.scrollTop = scrollPos;
}