I knew as soon as I posted a question I would find an answer! Here's the solution in case anyone else is trying the same thing:
Call with:
..and it would wrap the selected text in xcxxx
Code:
function wrapTag(tag) {
var textarea = document.getElementById('post_message');
wrapText(textarea, '[' + tag + ']', '[/' + tag + ']');
}
function wrapText(element, pre_text, post_text) {
if (element.setSelectionRange) {
var start = element.selectionStart;
var end = element.selectionEnd;
element.value = element.value.substr(0, start) + pre_text + element.value.substr(start, end - start) + post_text + element.value.substr(end, element.value.length);
setSelectionRange(element, start + pre_text.length, end + pre_text.length);
}
else if (document.selection) {
element.focus();
var range = document.selection.createRange();
if (range.parentElement() != element)
return;
var len = range.text.length;
range.text = pre_text + range.text + post_text;
range.moveEnd('character', -post_text.length);
range.moveStart('character', -len);
range.select();
}
else {
element.value += pre_text + post_text;
}
}
Bookmarks