Использование tinyMCE
При первичной инициализации редактора tinyMCE данные в редактируемое поле textarea передаются, но при каждом новом вызове (поле то же самое, но значение в нём меняется) в редакторе поле всегда пустое...
Как быть? - не инициализировать tinyMCE? - как тогда его вызывать? Спасибо за совет. Инициализацию редактора произвожу при открытии диалогового окна: $('#edttxt').val(newText); // присвоение нового редактируемого текста tinymce.init({ mode : "exact", elements : "edttxt", force_br_newlines : true, // замена <p> на <br> inline: false, plugins: [ "advlist autolink lists link image charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste" ], toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image" }); |
Rise, ну, а как назвать открываемое в слое?
$("#editor").dialog({ autoOpen: false, modal: true, show: "blind", hide: "explode", title: 'Редактирование', resizable: true, width: 530, height: 350 }); |
Rise, тогда лучше прямо на сайте поглядеть: http://ledagregator.ru/lesson.html
Имя / пароль: 5 / 5 В левой части у каждого текста иконка с карандшиком открывает редактирование |
При закрытии окна надо вызывать editor.destroy(). В данном случае editor - это объект, возвращаемый функцией init(). Хотя могу ошибаться в деталях. Но суть такова. Потому что редактор не может привязаться к одному элементу несколько раз, не отвязавшись от него.
|
danik.js, спасибо, однако не помогло.
Правда закрытие окна добавил в опцию закрытия, может быть поэтому так и не работает при повторном вызове: $("#editor").dialog({ autoOpen: false, modal: true, show: "blind", hide: "explode", title: 'Редактирование', resizable: true, width: 530, height: 350, close: function(event, ui) {$("#editor").dialog("destroy")} }); |
какой в жопу dialog destroy? Я сказал editor.destroy!!!
var editor = tinymce.init(); ... editor.destroy(); |
Кстати, если элемент при закрытии диалога не уничножается, то зачем повторно инициализировать редактор?
|
danik.js, ну не ругайся! :agree:
Я ж тут вовсе а#уею :blink: |
Цитата:
|
danik.js, спасибо ещё раз!
Но чего-то я такого наворотил, что кердык полнейший. В документации сказано передавать значения в tinyMCE с помощью tinyMCE.activeEditor.setContent("тут нужная херня"); Так и передаю, а оно нихера не передаётся! :-E Но это ещё полпиздеца, даже четверть его! Самый писец в том, что при указании в опциях инициализации tinymce.init({ mode : "exact", //theme : "advanced", elements : "edttxt", force_br_newlines : true, // замена <p> на <br> inline: false, language : 'ru', plugins: [ "advlist autolink lists link image charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste" ], toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image" }); Если ставить theme : "advanced" эта сука вообще не открывается. Но это не всё! В окне диалога, где этот редактор, сука, должен открыться, в его поле ввода/редактирования текста вообще не попадает фокус. Так, как будто он имеет статус "readonly". |
Цитата:
Цитата:
|
danik.js, а куда, вернее когда сделать вызов setTimeout?
|
init делать по таймауту.
|
danik.js, всё-таки это глюк в tinyMCE - стоило избавиться от установки слоя в "dialog" и всё заработало.
Однако, в tinyMCE есть опция tinyMCEPopup (http://www.tinymce.com/wiki.php/API3:class.tinyMCEPopup) но с которой я совсем не возьму в толк как работать. |
$(this).click(function() { vs = $(this).html(); $("#otzyv").html(vs); tinymce.init({ selector: '#otzyv', .... }) $("#example").on("dialogclose", function(event, ui) { tinymce.execCommand("mceRemoveEditor", true, 'otzyv'); }); |
Часовой пояс GMT +3, время: 12:07. |