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, время: 07:54. |