Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как добавить теги <b></b> для текста ? (https://javascript.ru/forum/dom-window/21405-kak-dobavit-tegi-b-b-dlya-teksta.html)

saturn 08.09.2011 10:12

Как добавить теги <b></b> для текста ?
 
Доброго дня всем.
Подскажите как сделать чтобы выделенный текст при нажатии на кнопку обрамлялся тегами <b></b>.
(Jquery)

da_ff 08.09.2011 11:12

Выделенный текст на странице или в textarea|input?

saturn 08.09.2011 11:20

Да, в textarea / input.
Вот когда я щас пишу сообщение и выделяю слово
то это слово выделяется тегами.
Хочу свой редактор страниц сделать.

da_ff 08.09.2011 11:39

function a (o) {
  if (document.selection) {
    var s = document.selection.createRange(); 
    if (s.text) {
      s.text = '<b>' + s.text + '</b>';
      s.select();
    }
  } else if (typeof o.selectionStart === 'number') {
    var
      b = '<b></b>'.length,
      value = o.value,
      start = o.selectionStart,
      end = o.selectionEnd,
      len = end - start;

    o.value = value.substring(0, start) + '<b>' + value.substring(start, end) + '</b>' + value.substring(end);
    o.setSelectionRange(start + len + b, start + len + b);
  }
}

saturn 08.09.2011 12:06

da_ff
Спасибо, буду прикручивать в форме.

saturn 08.09.2011 15:38

Не пойму как эту функцию запустить, делаю так но ничего не выходит
$('#bb').click(function() {
            
            function a (o) {
  if (document.selection) {
    var s = document.selection.createRange();
    if (s.text) {
      s.text = '<b>' + s.text + '</b>';
      s.select();
    }
  } else if (typeof o.selectionStart === 'number') {
    var
      b = '<b></b>'.length,
      value = o.value,
      start = o.selectionStart,
      end = o.selectionEnd,
      len = end - start;
 
    o.value = value.substring(0, start) + '<b>' + value.substring(start, end) + '</b>' + value.substring(end);
    o.setSelectionRange(start + len + b, start + len + b);
  }
}

da_ff 08.09.2011 15:49

saturn,
Ее надо вызвать и передать в качестве параметра объект.
function a (o) {
  if (document.selection) {
    var s = document.selection.createRange();
    if (s.text) {
      s.text = '<b>' + s.text + '</b>';
      s.select();
    }
  } else if (typeof o.selectionStart === 'number') {
    var
      b = '<b></b>'.length,
      value = o.value,
      start = o.selectionStart,
      end = o.selectionEnd,
      len = end - start;
 
    o.value = value.substring(0, start) + '<b>' + value.substring(start, end) + '</b>' + value.substring(end);
    o.setSelectionRange(start + len + b, start + len + b);
  }
}
$('#bb').click(function() {
  a(сюдя_обект);
});

saturn 08.09.2011 16:09

da_ff
Я конечно извиняюсь, но я как новичок в javascript не могу понять как можно выделенный текст из textarea добавить в эту функцию.

da_ff 08.09.2011 17:00

saturn,
Не надо извиняться, надо точнее формулировать. Передать надо не текст, а textarea.
a($('селектор_к_textarea')[0]);

saturn 08.09.2011 17:21

da_ff
Спасибо тебе, наконец то все заработало.
Я теперь уже для каждого нужного тега сделаю аналогичные функции.


Часовой пояс GMT +3, время: 17:14.