Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выделение и замена в textarea!!! Оч. надо
 
 автор: Yustys   (20.01.2008 в 04:21)   письмо автору
 
 

Делаю панель визуальной правки данных на сайте - смысл в том, что в поле textarea при выделении нужного текста и нажатии например кнопки выделения жирным как в примере ниже, текст обрамляется соответствующими тегами... приведенный ниже упрощенный вариант скрипта работает так как нужно, но только в эксплорере. ВОПРОС: Как слелать чтоб этот скрипт работал так же в опере и мазиле? Очень жду ответов. Спасибо.

<script language="javascript" type="text/javascript">
function Insert(Text)
{
element = document.getElementById(" Mytextarea");
element.focus();
if (document.selection)
{
SelectedText = element.document.selection.createRange();
SelectedText.text ="["+Text+"]"+SelectedText.text+"[/"+Text+"]";
}
}
// -->
</script>

<form method="post" >
<!-- кнопка, в гиф формате, при клике на которой выделенный текст в форме обрамляется тегом [b][/b] -->
<img src="panel/bold.gif" onclick='Insert(b.value)' name="b" value="b" style="cursor: hand" alt="Выделение жирным"/>
<br clear='all' />
<textarea name=" Mytextarea" ></textarea>
</form>

   
 
 автор: bronenos   (20.01.2008 в 10:10)   письмо автору
 
   для: Yustys   (20.01.2008 в 04:21)
 

element.[selectionStart|selectionEnd|selectionLength]

   
 
 автор: yustys   (21.01.2008 в 15:47)   письмо автору
 
   для: bronenos   (20.01.2008 в 10:10)
 

Спасибо, но мне в Вашей подсказке не разобраться, я слаб в яваскрипт, Вы не могли бы показать тоже, но уже в моем примере?

   
 
 автор: bronenos   (21.01.2008 в 17:48)   письмо автору
 
   для: yustys   (21.01.2008 в 15:47)
 

У меня тут сессия, но
Начало выделения .selectionStart
Длина выделения .selectionLength
Конец выделения .selectionEnd

Это если я помню
Остальное - перезапись value с учетом substr() нужного места

   
 
 автор: KPETuH   (21.01.2008 в 18:20)   письмо автору
 
   для: Yustys   (20.01.2008 в 04:21)
 

в мозиле и опере немного подругому, если не спешно то завтра выложу скрипт работающий и там и там... если спешно поищите в гугле или яндексе на тему bb коды в мозиле или что то подобное

   
 
 автор: вялый   (21.01.2008 в 19:25)   письмо автору
 
   для: KPETuH   (21.01.2008 в 18:20)
 

Может, это?

   
 
 автор: yustys   (21.01.2008 в 22:35)   письмо автору
 
   для: KPETuH   (21.01.2008 в 18:20)
 

КРЕТиНу=Жду дня завтрашнего. Буду ОЧЕНЬ благодарен!!!

   
 
 автор: KPETuH   (21.01.2008 в 22:59)   письмо автору
 
   для: yustys   (21.01.2008 в 22:35)
 

function tag(txtstart,txtend) {
document.koment.msg.focus();
if (document.selection) {
    // ie & may be opera 8
    var rng = document.selection.createRange();
    if (rng.text) {   
      document.selection.createRange().text = txtstart + rng.text + txtend;
    } else {  
      document.koment.msg.value += txtstart  + txtend;
    }
    document.koment.msg.focus();
  }
else if (document.koment.msg.selectionStart ||
document.koment.msg.selectionStart == '0') {
    // mozilla: intellegent bcodes support
    var selStart = document.koment.msg.selectionStart;
    var selEnd = document.koment.msg.selectionEnd;

    var s = document.koment.msg.value;
    s = s.substring(0, selStart) + txtstart + s.substring(selStart, selEnd)
+ txtend + s.substring(selEnd, s.length);
    document.koment.msg.value = s;

    if (selEnd != selStart) {
      document.koment.msg.selectionStart = selStart;
      document.koment.msg.selectionEnd = selEnd + txtstart.length +
txtend.length;
    } else {
      document.koment.msg.selectionStart = selStart + txtstart.length;
      document.koment.msg.selectionEnd =
document.koment.msg.selectionStart;
    }
  } else {
    // other browsers
    document.koment.msg.value += txtstart + txtend;
  }

вместо koment и msg нужно подставить свои значения koment - имя формы, msg - имя textarea

использовать
<a class='tag' href='#' onclick="javascript:tag('[U]','[/U]'); return false;" >[U][/U]</a>



p.s. скрипт не мой авторство щас уже не скажу :) , в опере не пробовал в мозиле точно работает...

   
 
 автор: yustys   (25.01.2008 в 05:05)   письмо автору
 
   для: KPETuH   (21.01.2008 в 22:59)
 

Спасибо большое.!!! Вы мне очень помогли! Благодарен.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования