<script type="text/javascript"> <!-- /**************************************************************************/ function closeTags(str, tagsToClose) { var tags = {}, ret = '', sT = tagsToClose; str.replace(/<(\/)?([\w]+)([\s=][^<>]*)?>/g, function(a, b, c) { if (isNaN(tags[c = c.toLowerCase()])) tags[c] = 0; for (var i = 0; i < sT.length;) if (c == sT[i++]) { b != '/' ? tags[c]++ : tags[c] > 0 ? tags[c]-- : 0; break; } } ); for (var v in tags) while (tags[v]--) ret += '[/' + v + ']'; return ret; } function selExist(elm) { if (elm.setSelectionRange) { return elm.selectionStart != elm.selectionEnd; } else if (document.selection) { elm.focus(); var range = document.selection.createRange(); return range.text != ''; } return false; } function addToEnd(elm, text) { elm.focus(); elm.value += text; if (elm.setSelectionRange) { var len = elm.value.length; elm.setSelectionRange(len, len); } elm.scrollTop = elm.scrollHeight; } function selReplace(elm, text1, text2) { elm.focus(); if (elm.setSelectionRange) { if (typeof text2 != 'undefined') { text1 += elm.value.substring(elm.selectionStart, elm.selectionEnd) + text2; } var scrollPos = [elm.scrollLeft, elm.scrollTop]; var begin = elm.value.substr(0, elm.selectionStart); var end = elm.value.substr(elm.selectionEnd); var curPos = elm.selectionStart + text1.length; elm.value = begin + text1 + end; elm.setSelectionRange(curPos, curPos); elm.scrollLeft = scrollPos[0]; elm.scrollTop = scrollPos[1]; } else if (document.selection) { var range = document.selection.createRange(); if (typeof text2 != 'undefined') { text1 += range.text + text2; } range.text = text1; range.select(); } else { if (typeof text2 != 'undefined') text1 += text2; addToEnd(elm, text1); } } /**************************************************************************/ var tagList = ['b', 'i', 'u', 'code', 'img']; var tagOpened = []; function insertText(text) { var elm = document.forms.my_form.my_textarea; selReplace(elm, ' ' + text + ' '); } function pasteTag(nmbr, btn) { var elm = document.forms.my_form.my_textarea; if (selExist(elm)) { selReplace(elm, '[' + tagList[nmbr] + ']', '[/' + tagList[nmbr] + ']'); } else { if (tagOpened[nmbr]) { selReplace(elm, '[/' + tagList[nmbr] + ']'); btn.value = btn.value.substr(0, btn.value.length - 1); tagOpened[nmbr] = false; } else { selReplace(elm, '[' + tagList[nmbr] + ']'); btn.value += '*'; tagOpened[nmbr] = true; } } } function closeAllTags() { var elm = document.forms.my_form.my_textarea; var inpts = document.forms.my_form.elements; var tmpStr = closeTags(elm.value, tagList); if (tmpStr != '') { addToEnd(elm, tmpStr); tagOpened = []; for (var i = 0; i < inpts.length; i++) { if (inpts[i].type.toLowerCase() == 'button') { with (inpts[i].value) if (charAt(length - 1) == '*') { inpts[i].value = inpts[i].value.substr(0, inpts[i].value.length - 1); } } } } elm.focus(); } //--> </script>
i takimi buttonami je wstawiam:
I tu pojawia sie problem ponieważ button zamknij znaczniki wogule ich nie zamyka. Prosze o pomoc