Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.05.2016, 23:06
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

Установить позицию курсора в редакторе через designMode
В качестве редактора использую режим designMode = "on"; дабы можно было прямо в редактор вставлять смайлики. После добавления смайлика текстовый курсор остается в прежней позиции, а надо бы его переместить за смайлик, чтобы пользователь мог продолжить набор текста.

Как переместить текстовый курсор в конец текста?
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2016, 00:34
Аспирант
Отправить личное сообщение для Madzal Посмотреть профиль Найти все сообщения от Madzal
 
Регистрация: 18.02.2016
Сообщений: 62

input.selectionStart = input.value.length
Ответить с цитированием
  #3 (permalink)  
Старый 15.05.2016, 12:28
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

При чем тут input? Редактирование идет в iframe. Вот функция, заменяющая textarea на свой редактор:

update: function(id) {
		// Допустим, что нам известен id нужного тега textarea
		var Textarea = document.getElementById(id);
		var Container = document.createElement("DIV");
		
		// Добавим контейнер к родителю текстарии, потом перенесем ее внутрь контейнера и скроем
		Textarea.parentNode.insertBefore(Container, Textarea); 
		Container.appendChild(Textarea);
		Textarea.style.display = 'none';
			
		// Создадим фрейм и добавим его в контейнер редактора
		var iframe = "<iframe id='txt-frame' class='textarea' src=\"javascript: document.open(); document.domain='" + document.domain + "'; document.close();\" frameborder='0'></iframe>";
	
		Container.innerHTML =  iframe + Container.innerHTML;
		this.Frame = Container.childNodes[0];
	
		// Хитрое определение IE ;)
		this.isIE = /*@cc_on!@*/false;
	
		// Выделим документ фрейма в отдельную переменную
		this.FrameDoc = this.isIE ? this.Frame.contentWindow.document : this.Frame.contentDocument;
	
		this.FrameDoc.open();
	
		// Если содержимое тега body будет пустым, в FF курсор станет каким-то через-чур маленьким. 
		// Чтобы этого избежать, добавим & nbsp;
		this.FrameDoc.write('<html><head><style>body{ margin:0; padding:4px; width:795px; font-size: 11px; font-family: tahoma,arial,verdana,sans-serif,Lucida Sans; word-wrap:break-word; }.smile{width: 20px; height: 20px;}</style></head><body>'+ Textarea.value +'&nbsp;</body></html>');
		this.FrameDoc.close();
		this.FrameDoc.designMode = "on";
		
		this.Frame.contentWindow.focus();
	
	}
Ответить с цитированием
  #4 (permalink)  
Старый 18.05.2016, 22:53
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

https://learn.javascript.ru/range-textrange-selection
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить значение на selectToUISlider через кнопку YAX jQuery 0 05.02.2012 19:35
установить переменную сессии через ajax при загрузке страницы optik77 AJAX и COMET 3 02.06.2011 17:36
Как менять позицию элемента? Заданую через position:absolute; left:100px; top:200px; aRpi Общие вопросы Javascript 3 24.04.2011 08:42
Установить события через цикл DjTarik Общие вопросы Javascript 4 28.04.2010 10:58
Скрытие курсора через промежуток времени najrobi Internet Explorer 5 02.07.2009 16:32