На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> как найти и изменить слово в <DIV> , пример для textarea у меня есть а как для DIV?
    ранее для выборочного форматирования текста в форме я использовал textarea (как и на этом сайте), но оказалось что в textarea нельзе изображать техт в формате HTML мне посоветовали использовать редактируемый div но теперь перестал работать скрипт:
    ошибка возникает в переменной textBox

    пример вызова:
    ExpandedWrap disabled
      <A href="javascript:paste('[b]','[/b]')"><B>[b]</B></A>


    ExpandedWrap disabled
      function paste(t1,t2,id_baseText)
      {
          var textBox = eval('document.PageForm.'+id_baseText);
          if (true) {
              if (document.selection) {
                  textBox.focus();
       
                  var txt = textBox.value;
                  var str = document.selection.createRange();
       
                  if (str.text == "") {
                      str.text = t1 + t2;
                  } else if (txt.indexOf(str.text)>=0) {
                      str.text = t1 + str.text + t2;
                  } else {
                      textBox.value = txt + t1 + t2;
                  }
              }
          } else {
              textBox.value =
              textBox.value + t1 + t2;
          }


    Вопрос в следующем как этот код переделать для DIV, окончательно задача заключается в следующем: пользователь выделяет в тексте ограниченном DIV слово нажимает например <b> и слово становится жирным
      Господа ну не уже ли никто не знает как найти выделенное слово в <div> а затем добавить к нему теги? :huh:
        Radimir,
        е торопись ;) - тут не так быстро броблемы решаются
        ЗЫ а я незнаю :(
          Похожая тема была, по-моему, вот здесь - Доступ к выделенному тексту
            Да видел я эту тему, если использовать textarea то и в моем скрипте все нормально работает, там ведь все просто:
            находим объект textarea;

            ExpandedWrap disabled
              var textBox = eval('document.PageForm._ctl0__ctl0__ctl0_txtMessage');


            далее находим выделенное слово

            ExpandedWrap disabled
              var str = document.selection.createRange();


            блин а что если выбрость не работающие части и оставить работающие:

            ExpandedWrap disabled
              if (str.text == "") {str.text = t1 + t2;
                          } else if (txt.indexOf(str.text)>=0) {
                              str.text = t1 + str.text + t2;

            а вот это все выбросить?
            ExpandedWrap disabled
              document.selected
              textBox.focus();
              var txt = textBox.value;
                  } else {
                              textBox.value = txt + t1 + t2;


            Добавлено в :
            Люды вы что вымерли чтоль есть мысли то?
              Пятница же, все леняться ;)
                Ну дак что товарисссчии дарагие может кто кинет мысль? :wall:
                  TextRange Лучше всего создавать по событию onmouseup
                  ExpandedWrap disabled
                     
                    <div id=editor onmouseup='ran=document.selection.createRange()'>
                    qwerty
                    </div>
                    <a href=# onclick='paste("[b]","[b]")' style='font-weight:bold'>[b]</a>
                    <script>
                    <!--
                    var ran;
                    function paste(t1,t2)
                    {
                            if (typeof ran !='undefined')
                            {
                                if (ran.text == "")
                                    ran.text = t1 + t2;
                                 else
                                    ran.text = t1 + ran.text + t2;
                            }
                     }
                    //-->
                    </SCRIPT>
                    Ясно а как сделать чтобы у пользователя на экране сразу HTML изображался т.е. не <b>слово</b> сразу сконвертировал его в HTML
                      Можно так. Можно ещё как-нить поэксперементировать...
                      [html]<div id=editor onmouseup='ran=document.selection.createRange()'>
                      qwerty
                      </div>
                      <a href=# onclick='paste("<b>","</b>")' style='font-weight:bold'>[b]</a>
                      <script>
                      <!--
                      var ran;
                      function paste(t1,t2)
                      {
                      if (typeof ran !='undefined')
                      {

                      if (ran.text == "")
                      ran.text = t1 + t2;
                      else
                      ran.text = t1 + ran.text + t2;

                      }
                      document.getElementById('editor').innerHTML = document.getElementById('editor').outerText;
                      }
                      //-->
                      </SCRIPT>[/html]
                      Сообщение отредактировано: Rom@nych -
                        Благодарствую щас заценю!
                          Всегда please :)
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0333 ]   [ 15 queries used ]   [ Generated: 2.05.24, 18:29 GMT ]