Colix Опубликовано 1 сентября, 2007 Жалоба Поделиться Опубликовано 1 сентября, 2007 (изменено) У меня такая ситуация: на странице есть <textarea> и кнопка. В <textarea> есть выделенный текст, надо, чтобы при нажатии на кнопку выделенный текст записывался в переменную(JavaScript). Изменено 1 сентября, 2007 пользователем Colix Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 3 сентября, 2007 Жалоба Поделиться Опубликовано 3 сентября, 2007 <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 Опубликовано 3 сентября, 2007 Автор Жалоба Поделиться Опубликовано 3 сентября, 2007 (изменено) <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"> Огроменное спасибо + в репу! А под все браузеры можно переделать? Изменено 3 сентября, 2007 пользователем Colix Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 3 сентября, 2007 Жалоба Поделиться Опубликовано 3 сентября, 2007 Замените if( document.selection ) На if( ! area.selectionStart && document.selection ) Так у меня работаеть под IE7, FF2, Opera 9.21 Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 4 сентября, 2007 Автор Жалоба Поделиться Опубликовано 4 сентября, 2007 Замените if( document.selection ) На if( ! area.selectionStart && document.selection ) Так у меня работаеть под IE7, FF2, Opera 9.21 Всё работает, спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 4 сентября, 2007 Автор Жалоба Поделиться Опубликовано 4 сентября, 2007 Я рано радовался! Под Firefox и Opera всё работает, но под IE 6 ошибка, которая заключается в том, что при повторном выделении, оно не обновляется в функции(то есть выделил - получил текст, ещё раз выделил ПОЛУЧИЛ ТОТ ЖЕ ТЕКСТ)Помогите исправить... Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 5 сентября, 2007 Жалоба Поделиться Опубликовано 5 сентября, 2007 Не подумал об этом :) <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"> Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 5 сентября, 2007 Автор Жалоба Поделиться Опубликовано 5 сентября, 2007 Всё! Теперь вопрос окончательно решён! Спасибо, большое. Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 5 сентября, 2007 Автор Жалоба Поделиться Опубликовано 5 сентября, 2007 К сожалению снова не работает..На этот раз ошибка в Опере.Если в выделении участвует первый символ, то функция не работает.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти