2014-11-10 17 views
5

Mam stronę zawierającą jedną edycję tinymce4. Chcę zainicjować ten edytor z pewną zawartością, programowo. Wiem, że muszę zadzwonić: tinymce.get('editor').setContent('my content');initialize tinymce z zawartością

Jednak mam problem, aby to zrobić, gdy tinymce się inicjalizuje. Pytanie to zostało już zadane: initialize tinyMCE with default content, ale odpowiedź udzielona w tym czasie nie działa, przynajmniej dla tinymce4.

Oto co próbowałem:

1. podejściu:

tinymce.init({ 
     mode: "textareas", 
     ... 
     setup: function (editor) { 
     ... 
     editor.setContent('my content'); 
     } 
    }); 

-> Uncaught TypeError: nie można odczytać właściwość 'ciało' undefined

2. podejściu:

tinymce.init({ 
     mode: "textareas", 
     ... 
    }; 
    tinymce.get('editor').setContent('my content'); 

-> Uncaught TypeError: Nie można odczytać właściwości "setContent" o wartości zerowej (jeśli jednak zrobię to, gdy strona zawierająca edytor tinymce zostanie już załadowana, działa).

3-ty próba (SO 12083361 odpowiedź):

$(document).ready(function(){ 
    tinymce.get('editor').setContent('my content'); 
}); 

-> Uncaught TypeError: nie można odczytać własności 'setContent' null

Wszystko to się nie powiedzie, a także z tinymce.activeeditor.setContent('my content');.

Gdzie należy umieścić kod tinymce.get('editor').setContent('my content'); w moim kodzie, aby działał?

Odpowiedz

3

W wersji 4 należy zrobić to tak:

tinymce.init({selector:'textarea'}); 
tinymce.activeEditor.setContent('custom'); 

Oto fiddle.

+2

To jest dobre ... ale brakuje gdy istnieje wiele edytorów na stronie, które muszą być indywidualnie kierowane :-( –

+0

Co jeśli mamy więcej niż jeden RTE na stronie? Czy istnieje inne rozwiązanie ... –

0

Użyłem init_instance_callback, który jest uruchamiany, gdy edytor jest gotowy do ustawieniaContent.

var options = { ... }; 
 
options.init_instance_callback = function (editor) { 
 
    editor.setContent(initialContent); 
 
}; 
 
$("some-selector").tinymce(options);