Обрамление текста 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). Вот. Помогите, пожалуйста! |
За вас никто писать не будет (если вы всё же хотите - в раздел работа)... Эксперементировать тоже не надо, т.к. без дружбы ничего не выйдет. Определитесь, готовое вы хотите, или сами написать...
|
Приведенный Вами код будет работать только в Internet Explorer и, возможно, в Opera. Как писать кросс-браузерный код для работы с выделенными участками, можно прочитать в статье: «Range, TextRange и Selection».
|
B~Vladi, извините, пожалуйста, я все поняла.
Octane, спасибо, посмотрю. Я с этим уже давно мучаюсь... |
Часовой пояс GMT +3, время: 06:04. |