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 К сожалению снова не работает..На этот раз ошибка в Опере.Если в выделении участвует первый символ, то функция не работает.. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.