Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Запись в текстовую область (https://javascript.ru/forum/dom-window/37817-zapis-v-tekstovuyu-oblast.html)

DmitriSpartak 08.05.2013 14:03

Запись в текстовую область
 
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>JavaScript</title>
<script type="text/javascript">
window.onload = function()
{
	var clock = document.getElementById("clock");	
	clock.onclick = bbcode();
}

function bbcode()
{
	return function ()
	{
		var textarea = document.getElementById("textarea");
		var loc = textarea.firstChild.nodeValue;
		clock = clock.firstChild.nodeValue;
		textarea.focus();
		var textarea = document.getElementById("textarea");
		loc = clock;
		textarea.firstChild.nodeValue = loc;
		textarea.focus();
	}
}
</script>
</head>
<body>
	<h1 id="clock">Первая строка,<br /> вторая строка</h1>
	<textarea id="textarea"> </textarea>
</body>


Первая проблема: при клике, на h1, в случаи если там есть другие теги, в текстовую область вставляется лишь часть заголовка (в данном случаи до тега br), мне же нужно, чтобы вставлялся весь текст независимо от наличия в нем вложенных тегов, причем сами теги в текстовую область не вписывались.
Вторая проблема: при клике текст вставляется всегда в начало текстовой области, тем самым переписывая свое значение, независимо от того в какой строке находится в данный момент курсор; мне нужно чтобы текст вставлялся туда где стоит курсор в данный момент и предыдущая вставка не стиралась и не переписывалась.

animhotep 08.05.2013 14:14

так?
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>JavaScript</title>
<script type="text/javascript">
window.onload = function()
{
	clock.onclick = bbcode();
}

function bbcode()
{
	return function ()
	{
		var textarea = document.getElementById("textarea");
		var clock = document.getElementById("clock");	
		var loc = textarea.firstChild.nodeValue;
		clock = clock.innerHTML;
		textarea.focus();
		loc = clock;
		textarea.firstChild.nodeValue += loc;
		textarea.focus();
	}
}
</script>
</head>
<body>
	<h1 id="clock">Первая строка,<br /> вторая строка</h1>
	<textarea id="textarea"> </textarea>
</body>

DmitriSpartak 08.05.2013 18:34

animhotep, почти, только если например кликнуть по h, появится курсор в текстовой области, затем нажать на enter (перенести курсор на новую строку) и опять нажать на h, то ничего не добавляется


Часовой пояс GMT +3, время: 11:51.