Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2011, 13:19
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Создание 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>
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2011, 14:33
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<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, 20.02.2011 в 20:51.
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2011, 15:53
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

monolithed, О_о чувак.. это как-то громоздко получилось))) Ведь можно как-то компактнее? Мой основной вопрос в том, как переменной select присвоить выделенный текст?
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2011, 17:49
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от (Sandr)
О_о чувак.. это как-то громоздко получилось)))
кроссбраузерно, наверное нет

Сообщение от (Sandr)
Ведь можно как-то компактнее?
если найдете компактней, скажите мне
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2011, 17:58
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

вот компактнее
http://iceman12.ru/obramlenie-bb-kod...elennyj-tekst/
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2011, 18:12
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от (Sandr)
вот компактнее
http://iceman12.ru/obramlenie-bb-kod...elennyj-tekst/
сильно ошибаетесь!

если хоть немного попробуете напрячь мозг, то увидите, что для работы с BB-codes в моем коде всего одна функция addBB(), остальное - добавление обработчиков событий!
В приведенном же вами примере если обработчики событий вынести из HTML, то код разрастется куда больше
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2011, 18:38
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

monolithed, товарищ спасибо за помощь, но мне просто нужно переменной select присвоить выделенный текст, и узнать каким образом поставить фокус между двумя кодами, т.е. [тэг]сдесь[/тэг]
Я читал про focus() и искал про получение выделенноего текста, но в том, что я нашёл я ничё не понял..
Ответить с цитированием
  #8 (permalink)  
Старый 21.02.2011, 10:31
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Кто-нибудь может ответить?
Ответить с цитированием
  #9 (permalink)  
Старый 21.02.2011, 10:46
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Как взять выделенный текст из textarea
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #10 (permalink)  
Старый 21.02.2011, 22:04
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Всем спасибо)) Всё получилось)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование bb кодов cyberx Общие вопросы Javascript 12 26.08.2010 23:41
Создание скрипта! Создание диктанта для учеников! Елизавета Работа 10 30.06.2010 21:00
Создание копий объекта - обязателен ли prototype? heh131 Общие вопросы Javascript 12 15.05.2010 12:55
написать пару-тройку страниц простых кодов Эли Лилли Работа 1 27.02.2009 18:00
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 15:14