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

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


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

У меня такая ситуация: на странице есть <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">
Ссылка на комментарий
Поделиться на другие сайты

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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