Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.08.2009, 14:42
Bamby
 
Сообщений: n/a

Обрамление текста BB-тегами
Здравствуйте!
Мне нужно, чтобы при нажатии на кнопку, выделенный текст в texterea обрамлялся тегами (как на форумах). С JavaScript не дружу, поэтому решила скрипт в интернете поискать. Нашла.
function fnWrapWithTags(txt, sTag, sClass){
    var sHTML = "[" + sTag;
    sHTML += (sClass) ? " class=\"" + sClass + "\"" : "";
    sHTML += ("]" +txt + "[/" + sTag + "]");
    return sHTML;
}


function fnCode(){
    var txt = this.toString();
    var B = "B";
    return fnWrapWithTags(txt, B, "");
}

String.prototype.code = fnCode;


function fnApplyTag(B){
    // Спасибо Александру Карповичу <alexandr@cybermail.net> за найденные баги
    if (!document.all && !document.all.item) return; // «Уходим, уходим, уходим», если это не IE4+
    var oSelTxt = document.selection.createRange();
    var sSelTxt = oSelTxt.text;
    if (sSelTxt) oSelTxt.text = eval("sSelTxt."+B+"()");
}

вызывается:
<textarea rows="12" name="S2" cols="43" style="font-family: Arial; font-size: 12pt"></textarea></p>
<a href="javascript:fnApplyTag('code');">B</a>


Мне тут все понятно: при нажатии на ссылку, в функции fnApplyTag "В" заменяется "code". Но мне надо, чтобы еще можно было вставлять другие теги (I,U...). Я пыталась экспериментировать, но только один какой-то тег вставляется (либо b, либо i). Вот. Помогите, пожалуйста!
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2009, 15:02
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

За вас никто писать не будет (если вы всё же хотите - в раздел работа)... Эксперементировать тоже не надо, т.к. без дружбы ничего не выйдет. Определитесь, готовое вы хотите, или сами написать...
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2009, 15:55
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Приведенный Вами код будет работать только в Internet Explorer и, возможно, в Opera. Как писать кросс-браузерный код для работы с выделенными участками, можно прочитать в статье: «Range, TextRange и Selection».
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2009, 17:04
Bamby
 
Сообщений: n/a

B~Vladi, извините, пожалуйста, я все поняла.
Octane, спасибо, посмотрю. Я с этим уже давно мучаюсь...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль ввода текста в форму Derack Events/DOM/Window 11 09.01.2011 01:07
Вернуть в строковую переменную текст между тегами h1 andikk Общие вопросы Javascript 11 14.08.2009 17:40
Вопрос по выводу текста в тело HTML-документа средствами JavaScript AlexPh Я не знаю javascript 2 31.05.2009 02:46
Оборачивание текста в теги <b>, <i> и т.д. bizmak Элементы интерфейса 4 23.01.2009 05:01
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02