Получение выделенного участка

Статус
Закрыто для дальнейших ответов.

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Уважаемые знатоки JS'а, не подскажете ли мне, как наиболее универсальным способом получить выделенный участок текста, находящийся в поле формы? :helpsmilie:
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Было что-то такое в ActivX....
в большенстве случаях делается дублирование текста, и...
Позже отвечу точнее... Щас времени нету...
 

mrM

Адекватный критик
Регистрация
11.06.2005
Сообщения
90
А вопрос то, остался открытым. Кто знает как получить некоторый участок в поле формы? А там потом на его место вставить отформатированный участок.
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Вобщем что я смог найти:
onSelectStart() - вызывается когда юзер пытается выделить текст...
есть так-же свойства положения мыши... ксли кто придумает что-то действительно более уневирсальное рад был бы услышать результаты...
 

IPopin

Active Member
Регистрация
28.01.2006
Сообщения
26
Есть такой объект TextRange. Так вот через него подобные вещи можно делать. Подробности тут.

Правда работает тока под IE.
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Забыл про этот топик давно решил данную проблемму...
Тестил на ie т.к. админка...
Код:
<script language='JavaScript1.1' type='text/javascript'> 
<!--
function tag(text1, text2, element)
{
	if (document.form.document.selection)
	{
		var range=document.form.document.selection.createRange();
		document.form[element].focus();
		if(text1=="URL")
		{
			var url=prompt("Введите URL ссылки",document.form.document.selection.createRange().text);
			var url_text=prompt("Введите текст ссылки",document.form.document.selection.createRange().text);
			if(url==null)	url='';
			if(url_text==null) url_text='';
			if(range.text=='')
			{
				document.form[element].value += "<a href='"+url+"'>"+url_text+"</a>";
			}else{
				range.text = "<a href='"+url+"'>"+url_text+"</a>";
			}
		}else{
			if(document.form.document.selection.createRange().text!='')
			{
				document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
			}else{
				var a=prompt("Введите текст","");
				if(a==null) a='';
				document.form.document.selection.createRange().text = text1+a+text2;
			}
		}
	} else {
		var a=prompt("Введите текст","");
		document.form[element].value += text1+a+text2;
	}
}
//-->
</script>
в теле пишем код:
Код:
<form name='form' action='index.php' method='post'>
<?
print("Текcтовое содержание:<BR>");
	$element="new_text";
	print "<a href=# onClick=\"javascript:tag('<B>','</B>','".$element."'); return false;\" >[B]</a>
	<a href=# onClick=\"javascript:tag('<I>', '</I>','".$element."'); return false;\">[I]</a>
	<a href=# onClick=\"javascript:tag('<U>', '</U>','".$element."'); return false;\">[U]</a>
	<a href=# onClick=\"javascript:tag('URL', '','".$element."'); return false;\" >[A]</a><br>";
	print("<textarea name='new_text' rows=15 cols=50 class=form>".$text."\n");
	print("</textarea><BR>\n");
?>

</form>
Заметте name=form обязательно для данного js
или в откомпиленом виде:
Текcтовое содержание:<BR>
<a href=# onClick="java script:tag('<B>','</B>','new_text'); return false;" ></a>
<a href=# onClick="java script:tag('<I>', '</I>','new_text'); return false;"></a>
<a href=# onClick="java script:tag('<U>', '</U>','new_text'); return false;"></a>
<a href=# onClick="java script:tag('URL', '','new_text'); return false;" >[A]</a>
<br><textarea name='new_text' rows=15 cols=50 class=form></textarea>

Преобразовать и доработать код с минимальными знаниями ничего сложного не представляет, вроде...
Если что пишите помогу...
 
Статус
Закрыто для дальнейших ответов.
Верх Низ