Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2010, 02:53   #1
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию bbcodes

Скрипт должен вставлять тег с краёв выделённого текста. У меня тако принцып работы: найти выделенный текст., по карям ему запихать вставить в textarea. Но текст, как удалить тот текст который был выделен?
Код:
<script>
var txt;
function sel()
{
        var area = document.getElementById('text');
        var value = area.value;
       
        if( document.selection )
        { 
                var range = document.selection.createRange();
                var stored_range = range.duplicate();
                stored_range.moveToElementText( area );
                stored_range.setEndPoint( 'EndToEnd', range );
                area.selectionStart = stored_range.text.length - range.text.length;
                area.selectionEnd = area.selectionStart + range.text.length;
        }        txt = value.substring( area.selectionStart,area.selectionEnd );  
}
function insertCode(code) {
        code1='['+code+']';
        code2='[/'+code+']';
        document.FormName.text.value+= code1;
        document.FormName.text.focus();
        document.FormName.text.value+= txt;
        document.FormName.text.value+= code2;
}
</script>
<td width=50% ><p><strong>Введите полный текст:</strong>*</p></td>
<td width=50%><strong>
<label><textarea name="text" cols="47" rows="8" id="text"></textarea></label>
</strong>
<input type='button'  value=" i " onclick="sel();insertCode('i')"></td></tr>
cheef вне форума Ответить с цитированием
Старый 20.11.2010, 12:59   #2
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

http://www.ruscript.net/scripts/152/
Никки вне форума Ответить с цитированием
Старый 20.11.2010, 14:05   #3
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

А как удалить выделенный текст?
cheef вне форума Ответить с цитированием
Старый 20.11.2010, 17:04   #4
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

По ссылке то никак пройти? Там в самом конце написано.
Никки вне форума Ответить с цитированием
Старый 20.11.2010, 18:45   #5
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Можешь пальцем ткнуть. Я в js не разбираюсь.
Код:
 pred=document.FormName.text.value; 
        code1='['+code+']';
        code2='[/'+code+']';
        document.FormName.text.focus();
        document.FormName.text.value=pred+code1+txt+code2;
Был у меня текст : Я котлета.
Он его после нажатия на кнопку делает.
Я котлета{b}Я котлета{b} (скобки другие только).
Как убрать Я котлета?
cheef вне форума Ответить с цитированием
Старый 08.12.2010, 17:07   #6
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Пожалуйста помогите очень нужно.
cheef вне форума Ответить с цитированием
Старый 08.12.2010, 18:17   #7
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Код:
function Remove() {
element = document.getElementById("texts");
element.focus();
if (document.selection) {
SelectedText = element.document.selection.createRange();
SelectedText.text = "";
}
А вообще мой совет - юзайте готовые решения.

Последний раз редактировалось SkyM@n; 08.12.2010 в 18:22.
SkyM@n вне форума Ответить с цитированием
Старый 09.12.2010, 09:06   #8
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
Код:
function Remove() {
element = document.getElementById("texts");
element.focus();
if (document.selection) {
SelectedText = element.document.selection.createRange();
SelectedText.text = "";
}
А вообще мой совет - юзайте готовые решения.
Спасибо за готовое решение. Jquery работает, но тот пример парсинга(на том же сайте). Не работает.
PHP код:
 function bbcode($text) {
  
$str_search = array(
  
"#\[br\]#is",
  
"#\[p\](.+?)\[\/p\]#is",
  
"#\[b\](.+?)\[\/b\]#is",
  
"#\[i\](.+?)\[\/i\]#is",
  
"#\[s\](.+?)\[\/s\]#is",
  
"#\[u\](.+?)\[\/u\]#is",
  
"#\[urll=(.+?)\](.+?)\[\/url\]#is",
  
"#\[url\](.+?)\[\/url\]#is",
  
"#\[img\](.+?)\[\/img\]#is",
  
"#\[size=(.+?)\](.+?)\[\/size\]#is",
  
"#\[color=(.+?)\](.+?)\[\/color\]#is",
  
"#\[list\](.+?)\[\/list\]#is",
  
"#\[list=(1|a|I)\](.+?)\[\/list\]#is",
  
"#\[\*\](.*)#",
  
"#\[h(1|2|3|4|5|6)\](.+?)\[/h\\1\]#is");
  
$str_replace = array(
  
"<br />",
  
"<p>\\1</p>",
  
"<strong>\\1</strong>",
  
"<span style='font-style:italic'>\\1</span>",
  
"<span style='text-decoration:line-through'>\\1</span>",
  
"<span style='text-decoration:underline'>\\1</span>",
  
"<a href='\\1'>\\2</a>",
  
"<a href='\\1'>\\1</a>",
  
"<img src='\\1' />",
  
"<span style='font-size:\\1pt'>\\2</span>",
  
"<span style='color:\\1'>\\2</span>",
  
"<ul>\\1</ul>",
  
"<ol type='\\1'>\\2</ol>",
  
"<li>\\1</li>",
  
"<h\\1>\\2</h\\1>");
  return 
preg_replace($str_search$str_replace$text);
}
bbcode($text); 
Делаю так, но $text всё равно содержит bbcod'ы, а не html.
Или может яя функцию вызываю не правильно? И вообще надо её вызывать или нет?

Последний раз редактировалось cheef; 09.12.2010 в 09:09.
cheef вне форума Ответить с цитированием
Старый 09.12.2010, 09:45   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Какой текст сейчас выдает у Вас функция?
SkyM@n вне форума Ответить с цитированием
Старый 09.12.2010, 10:09   #10
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
Какой текст сейчас выдает у Вас функция?
До входа:
{b}123321{/b}
После тоже самое.
{}-[]

Последний раз редактировалось cheef; 09.12.2010 в 10:19.
cheef вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
встроить BBCodes daniel47 PHP 16 06.10.2009 17:44
BBcodes panel spein PHP 1 19.04.2009 15:21