tinyMCE jQuery перехват изменений
Может кто подсказать?
К сути - есть tinyMCE и jquery плагин версии 2.1 Нужно реализовать перехват изменения содержания айфрейма с визивигом Проискал интернет, единственное что обнаружил tinyMCE.init({ onchange_callback: "myfunction" }) Но с плагином jQuery не заводится. ни таким образом, ни при подключении к конструкции приведённой ниже. вот пример: (На хост не выкладываю - смысла нет, на jsFiddle аналогично, может так в курсе кто) [spoiler] $('#text_area_cell_create').tinymce({ // Location of TinyMCE script content_css : "/core/templates/js/tiny_mce/custom_content.css", script_url : '/core/templates/js/tiny_mce/tiny_mce.js', // General options theme : "advanced", language : "ru", relative_urls : false, plugins : "safari,pagebreak,style, layer,table,save,advhr,advimage, advlink,emotions,iespell,inlinepopups,insertdatetime, preview,media,searchreplace,print,contextmenu, paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,images", file_browser_callback : "upload", // Theme options theme_advanced_buttons1 : "save,|,mylistbox,mysplitbutton,bold,italic,underline,separator,strikethrough,justifyleft,justifycenter, justifyright,justifyfull,bullist,numlist,formatselect,|,code,|, undo,redo,link,unlink,image,images,|,fullscreen", theme_advanced_buttons2 : "abbr,acronym,del,ins,attribs,styleprops", theme_advanced_buttons3 : "", fullscreen_settings : { theme_advanced_buttons1 : "save,|,undo,redo,|,cut,copy,paste,pastetext,pasteword,|,search,replace,|, cleanup,removeformat,visualaid,visualchars,nonbreaking,|,bold, italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|, outdent,indent,blockquote,|,sub,sup,|,bullist,numlist,formatselect,code,|,fullscreen", theme_advanced_buttons2 : "tablecontrols,|,insertlayer,moveforward,movebackward,absolute,|,link, unlink,anchor,|,insertdate,inserttime,|,charmap,emotions,iespell, media,image,images,advhr,hr,|,cite,abbr,acronym,del,ins, attribs,styleprops,|,typograf", theme_advanced_path_location : "bottom" }, theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : false, setup : function(ed){ if (ed.editorId != 'mce_fullscreen') { tinyMCE.myActiveEditor = {}; tinyMCE.myActiveEditor = ed; } ed.onActivate.add( function(ed){ if( ed.editorId != 'mce_fullscreen' ){ tinyMCE.myActiveEditor = {}; tinyMCE.myActiveEditor = ed; } }); ed.onInit.add(function(ed) { el = ed.getBody(); //элементы данной функции привёл ниже tinyMCE_HTML_into_elem(el) }); ed.onLoadContent.add( function(ed){ ed.addCommand('mceSave', function(){ $(".elem_new").html($("#text_area_cell_create").val()) return false; }); }); } }); [/spoiler] В данный момент вышел из положения велосипедом el.addEventListener('DOMCharacterDataModified', function() { afterListinerResize($(".elem_new")) }); и el.addEventListener('DOMSubtreeModified', function() { afterListinerResize($(".elem_new")) }); и el.addEventListener('paste', function() { afterListinerResize($(".elem_new")) }); С отловом повторений, но всё же возможно есть простой способ перехвата? Буду очень признателен upd: кросбраузерность не важна. Только хром, Новая опера и ФФ. upd2: или возможно както отследить изменение содержания кода в текстарее? upd3: Самый крайний вариант - буду обфускацию tinymce ломать |
Проблему решил. Нашёл читабельный исходник и обсмотрел возможные события.
В setup вставил реакцию на события. ed.onEvent.add(function(ed) { afterListinerResize($(".elem_new")); }); //и ed.onNodeChange.add(function(ed) { afterListinerResize($(".elem_new")); }); // реакция на вставку изображений |
Часовой пояс GMT +3, время: 09:34. |