Создание bb-кодов
Всем здрасте) Подскажите, как сделать бб-коды на сайте?
Вот мой код, но он не доделан до конца(( а если быть точнее, то я не пойму как в переменную select загнать выделенный текст..
<script>
function bbcods(bbcod)
{
var textareaobj = document.getElementById('valueid');
var bbopen = '['+bbcod+']';
var bbclose = '[/'+bbcod+']';
var select =
textareaobj.value = bbopen+select+bbclose;
}
</script>
<a href="javascript:void(0)" onclick="bbcods('b')"><b>Жирный текст</b></a><br>
<form action="адрес" method="POST">
<textarea rows=5 cols=25 name="mess" id="valueid"></textarea><br>
<input type="submit" value="Отправить">
</form>
|
<script type="text/javascript">
window.onload = function() {
var codes = document.getElementById('codes').getElementsByTagName('a'), array = ['B', 'U', 'I'], i = codes.length;
while(i--) {
codes[i].onclick = function(i) {
return function() {
addBB('['+i+']', '[/'+i+']');
return false;
};
}(array[i]);
}
};
function addBB(ltag, rtag) {
var textarea = document.form.elements[0];
textarea.focus();
if(document.selection && document.selection.createRange) {
sel = document.selection.createRange();
if (sel.parentElement() == textarea) sel.text = ltag + sel.text + rtag;
}
else if(typeof(textarea) != undefined) {
var start = textarea.selectionStart, end = textarea.selectionEnd;
textarea.value = textarea.value.substring(0, start) + ltag + textarea.value.substring(start, end) + rtag+ textarea.value.substring(end, textarea.value.length|0);
}
else textarea.value += ltag + rtag;
}
</script>
<style type="text/css">
a {
background: #F7F7F7;
border: outset white 1px;
color: #000;
font: 10pt/10px sans-serif;
padding: 0px 5px;
text-decoration: none;
}
</style>
<div id="codes">
<a href="#"><b>B</b></a>
<a href="#"><u>U</u></a>
<a href="#"><i>I</i></a>
</div>
<form name="form" action="" method="post">
<textarea cols="50" rows="5"></textarea>
</form>
|
monolithed, О_о чувак.. это как-то громоздко получилось))) Ведь можно как-то компактнее? Мой основной вопрос в том, как переменной select присвоить выделенный текст?
|
Цитата:
Цитата:
|
вот компактнее :)
http://iceman12.ru/obramlenie-bb-kod...elennyj-tekst/ |
Цитата:
если хоть немного попробуете напрячь мозг, то увидите, что для работы с BB-codes в моем коде всего одна функция addBB(), остальное - добавление обработчиков событий! В приведенном же вами примере если обработчики событий вынести из HTML, то код разрастется куда больше ;) |
monolithed, товарищ спасибо за помощь, но мне просто нужно переменной select присвоить выделенный текст, и узнать каким образом поставить фокус между двумя кодами, т.е. [тэг]сдесь[/тэг]
Я читал про focus() и искал про получение выделенноего текста, но в том, что я нашёл я ничё не понял.. |
Кто-нибудь может ответить?
|
|
Всем спасибо)) Всё получилось)
|
| Часовой пояс GMT +3, время: 14:25. |