Показать сообщение отдельно
  #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();
	
	}
Ответить с цитированием