3fabce47ae
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
/*!
|
|
* jQuery insertAtCaret
|
|
* Allows inserting text where the caret is in a textarea
|
|
* Copyright (c) 2003-2010 phpMyAdmin devel team
|
|
* Version: 1.0
|
|
* Developed by the phpMyAdmin devel team. Modified by Alex King and variaas
|
|
* http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript
|
|
* http://www.mail-archive.com/jquery-en@googlegroups.com/msg08708.html
|
|
* Licensed under the GPL license:
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
*/
|
|
;(function($) {
|
|
|
|
$.fn.insertAtCaret = function (myValue) {
|
|
|
|
return this.each(function() {
|
|
|
|
//IE support
|
|
if (document.selection) {
|
|
|
|
this.focus();
|
|
sel = document.selection.createRange();
|
|
sel.text = myValue;
|
|
this.focus();
|
|
|
|
} else if (this.selectionStart || this.selectionStart == '0') {
|
|
|
|
//MOZILLA / NETSCAPE support
|
|
var startPos = this.selectionStart;
|
|
var endPos = this.selectionEnd;
|
|
var scrollTop = this.scrollTop;
|
|
this.value = this.value.substring(0, startPos)+ myValue+ this.value.substring(endPos,this.value.length);
|
|
this.focus();
|
|
this.selectionStart = startPos + myValue.length;
|
|
this.selectionEnd = startPos + myValue.length;
|
|
this.scrollTop = scrollTop;
|
|
|
|
} else {
|
|
|
|
this.value += myValue;
|
|
this.focus();
|
|
}
|
|
});
|
|
};
|
|
|
|
})(jQuery);
|