Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE) (число прочтений - 31747 )
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #30 - 22. Февраля 2013 :: 09:56
Печать  
Вопрос - как вернуть значение текста из редактора?

Нашел такой код:

Код
Выбрать все
	ТекстСкрипта="tinyMCE.execCommand('mceSave');";
	HTTP_Окно.ExecScript(ТекстСкрипта,"JavaScript");
	Тело=HTTP_Документ.All.Editor.Value;
 



При отработке этого скрипта в переменную Тело возвращается нужный текст, но при этом текст в самом поле редактора заменяется на надпись "save".

А без запуска скрипта "mceSave" значение в Editor.Value = "<body></body>"
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #31 - 22. Февраля 2013 :: 10:35
Печать  
Должна была бы помочь строка

Код
Выбрать все
tinymce.get('editor').getContent(); 



Но как её запустить?

Через HTTP_Окно.ExecScript нет смысла - ExecScript ничего не возращает.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #32 - 25. Июня 2013 :: 15:29
Печать  
Добавил на форму с HTML-редактором текстовый реквизит.
Возникла проблема со вставкой текста по Ctrl+V в реквизит.

Не удается получить сведение о том, где находится фокус: в ActiveX или в реквизите. Так как даже если я нахожусь в ActiveX то

Код
Выбрать все
Реквизит = ФормаРасш.ПолучитьАтрибут("HTTP");
ФокусРекв = Реквизит.Фокус; 



ФокусРекв возвращает всё время 0.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #33 - 25. Июня 2013 :: 15:37
Печать  
Разобрался! У меня ActiveX висел на тексте-Статике. Поставил на кнопку - и теперь Форма.АктивныйЭлемент() возращает ИД кнопки, если я нахожусь в редакторе. И соответственно обработку нажатия кнопок делаю исходя из ИД-а реквизита, в котором нахожусь.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #34 - 03. Декабря 2013 :: 17:18
Печать  
По поводу вопроса получения редактируемого текста в редакторе.

Вот такой код возращает то, что нужно - текущий текст!

Код
Выбрать все
ТекстСкрипта="tinyMCE.triggerSave();";
HTTP_Окно.ExecScript(ТекстСкрипта,"JavaScript");
Тело=HTTP_Документ.All.Editor.Value; 



  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #35 - 14. Декабря 2013 :: 20:21
Печать  
Опять подводный камень.

triggerSave() не срабатывает, если редактор подключен в режиме "mceFullScreen"

т.е. в файле index.htm прописано

Код
Выбрать все
		oninit : function()
				{
				tinyMCE.execCommand('mceFullScreen');
				}

 



Только комменчу tinyMCE.execCommand('mceFullScreen'); - так всё взлетает. Отредактированный только что текст в редакторе возвращается корректно!

Но без FullScreen редактор выглядит некрасиво. Так что пока ума не приложу, как обойти этот "камень" - чтобы и красиво, и текст получить.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #36 - 14. Декабря 2013 :: 20:55
Печать  
Нашел ответ здесь:

http://core.trac.wordpress.org/ticket/7069#comment:4

а именно в патче: http://core.trac.wordpress.org/changeset/8037

Итого: если включен режим FullScreen для TinyMCE, то нужно делать так для получения текущего текста:

Код
Выбрать все
format : 'raw'}), {format : 'raw'});
 				|tinyMCE.get('editor').save();";
Рез = HTTP_Окно.ExecScript(ТекстСкрипта,"JavaScript");
Тело= HTTP_Документ.All.Editor.Value; 


  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 851
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: WYSIWYG HTML-редактор (1С+WebBrowser+TinyMCE)
Ответ #37 - 11. Апреля 2019 :: 09:55
Печать  
Интересно, а откуда вообще взялась замена нажатия Enter на Ctrl+M? Кто дальше ловит Ctrl+M - ActiveX Browser или TinyMCE?

я про
Код
Выбрать все
Процедура ПриНажатииКнопкиКлавиатуры
  ...
		Если (КодКлавиши=13) И (КАШ=0) Тогда
			WSH=СоздатьОбъект("WScript.Shell");
			WSH.SendKeys("^M");
 ...
 



Почему спрашиваю - решил навесить на Ctrl+M нужное нам действие, и оказалось, что в этом HTML редакторе оно используется и обрабатывается сразу два - перевод строки и новое действие.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать