# HG changeset patch # User neko259 # Date 2014-05-20 09:18:10 # Node ID c595713d2c0b132b0aeb009ee41225119e72646c # Parent dc375f16435adef28c313419c6bef48fdc4375da Refactored formatting panel code diff --git a/boards/static/js/panel.js b/boards/static/js/panel.js --- a/boards/static/js/panel.js +++ b/boards/static/js/panel.js @@ -34,24 +34,31 @@ function addMarkToMsg(start, end) { return addTextToEachLineOfSelection(start); } - var textareas = document.getElementsByTagName('textarea'); + var textareas = $('textarea'); for (var i = 0; i < textareas.length; i++) { var textarea = textareas[i]; - if( document.selection ) { + if (document.selection) { textarea.focus(); + var sel = document.selection.createRange(); sel.text = start + sel.text + end; - } else if(textarea.selectionStart || textarea.selectionStart == '0') { + } else if (textarea.selectionStart || textarea.selectionStart == '0') { textarea.focus(); + var startPos = textarea.selectionStart; var endPos = textarea.selectionEnd; - textarea.value = textarea.value.substring(0, startPos) + start + textarea.value.substring(startPos, endPos) + end + textarea.value.substring( endPos, textarea.value.length ); + + var oldValue = textarea.value; + textarea.value = oldValue.substring(0, startPos) + start + + oldValue.substring(startPos, endPos) + end + + oldValue.substring(endPos, oldValue.length); } else { textarea.value += start + end; } } + return false; } @@ -117,4 +124,4 @@ function getLinesRange(start, end, value rangeEnd = i; } return [rangeStart, rangeEnd]; -} \ No newline at end of file +}