| Код | var BBCode = new Array('','','[i]','[/i]','[u]','[/u]','[align=left]','[/align]','[align=center]','[/align]','[align=right]','[/align]','[list]','\n[/list]','[li]','[/li]'); function insertBBCode(el, n) { var bk = document.getElementById('mytext'); if(!bk[0]) { return false; } obj = bk[0]; obj.focus(); var alen = BBCode[n*2].length; if(document.selection) { var s = document.selection.createRange(); var len = s.text.length; var nText = BBCode[n*2] + s.text + BBCode[n*2 + 1]; s.text = nText; s = document.selection.createRange(); var df = (len < 1) ? 0 : (len + alen); s.moveStart("character", df); s.moveEnd("character", -(alen + 1)); s.select(); return true; } else if(typeof(obj.selectionStart) == 'number') { var start = obj.selectionStart; var end = obj.selectionEnd; var rs = BBCode[n*2] + (obj.value.substr(start,end-start)) + BBCode[n*2 + 1]; obj.value = obj.value.substr(0,start)+rs+obj.value.substr(end); obj.setSelectionRange(start + alen, end + alen); return true; } return false; }
|
пользование
| Код | <textarea id="mytext"></textarea> <img src="align_left.gif" onclick="insertBBCode(this, 3);" alt="left" /> <img src="bold.gif" onclick="insertBBCode(this, 0);" alt="bold" /> <img src="underline.gif" onclick="insertBBCode(this, 2);" alt="underline" /> ...
|
Добавлено через 1 минуту и 34 секунды в массиве BBCode первые два элемента не пустые строки, а [ b] и [ /b] . просто обработчик их похерил |