Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Получить выделенный текст в переменную


Рекомендуемые сообщения

У меня такая ситуация: на странице есть <textarea> и кнопка. В <textarea> есть выделенный текст, надо, чтобы при нажатии на кнопку выделенный текст записывался в переменную(JavaScript).

Изменено пользователем Colix
Ссылка на комментарий
Поделиться на другие сайты

<script language="JavaScript">var txt;function sel(){var area = document.getElementById('test');var value = area.value;/* IE */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;}/* /IE */txt = value.substring( area.selectionStart,area.selectionEnd );  alert(txt);}</script><textarea id="test" cols=30 rows=5>У меня такая ситуация: на странице есть textarea и кнопка. В textarea есть выделенный текст, надо, чтобы при нажатии на кнопку выделенный текст записывался в переменную(JavaScript).</textarea><br><input type="button" onclick="sel()" value="Select">
Ссылка на комментарий
Поделиться на другие сайты

<script language="JavaScript">var txt;function sel(){var area = document.getElementById('test');var value = area.value;/* IE */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;}/* /IE */txt = value.substring( area.selectionStart,area.selectionEnd );  alert(txt);}</script><textarea id="test" cols=30 rows=5>У меня такая ситуация: на странице есть textarea и кнопка. В textarea есть выделенный текст, надо, чтобы при нажатии на кнопку выделенный текст записывался в переменную(JavaScript).</textarea><br><input type="button" onclick="sel()" value="Select">

Огроменное спасибо + в репу! А под все браузеры можно переделать?

Изменено пользователем Colix
Ссылка на комментарий
Поделиться на другие сайты

Замените

  if( document.selection )

На

if( ! area.selectionStart && document.selection )

Так у меня работаеть под IE7, FF2, Opera 9.21

Ссылка на комментарий
Поделиться на другие сайты

Замените

  if( document.selection )

На

if( ! area.selectionStart && document.selection )

Так у меня работаеть под IE7, FF2, Opera 9.21

Всё работает, спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Я рано радовался! Под Firefox и Opera всё работает, но под IE 6 ошибка, которая заключается в том, что при повторном выделении, оно не обновляется в функции(то есть выделил - получил текст, ещё раз выделил ПОЛУЧИЛ ТОТ ЖЕ ТЕКСТ)Помогите исправить...

Ссылка на комментарий
Поделиться на другие сайты

Не подумал об этом :)

<script language="JavaScript">var txt;function sel(){var area = document.getElementById('test');var value = area.value;/* IE */if( ! area.selectionStart && document.selection ) {	var range = document.selection.createRange();	var stored_range = range.duplicate();	stored_range.moveToElementText( area );	stored_range.setEndPoint( 'EndToEnd', range );	var Start = stored_range.text.length - range.text.length;	var End = Start + range.text.length;txt = value.substring( Start,End );  	/* /IE */} else {	txt = value.substring( area.selectionStart,area.selectionEnd );  }alert(txt);}</script><textarea id="test" cols=30 rows=5>У меня такая ситуация: на странице есть textarea и кнопка. В textarea есть выделенный текст, надо, чтобы при нажатии на кнопку выделенный текст записывался в переменную(JavaScript).</textarea><br><input type="button" onclick="sel()" value="Select">
Ссылка на комментарий
Поделиться на другие сайты

К сожалению снова не работает..На этот раз ошибка в Опере.Если в выделении участвует первый символ, то функция не работает..

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...