Zapisz dane z wielu pól edytora inline CKEditor jak szablon

Tworzę system szablonów, w którym projektanci mogą przesyłać projekty HTML5 i umożliwiać użytkownikom dodawanie własnych treści. Używam CKEditor 4.2 i Rails 3 dla aplikacji. Chciałbym, aby użytkownicy mogli załadować stronę szablonu, a następnie bezpośrednio edytować różne edytory inline, a następnie zapisywać za pośrednictwem JS i Ajax. Miałem wszystko, ale dodając wtyczkę iFrame wpadłem na pewne problemy z formatowaniem, ponieważ po prostu zapisywałem surowy HTML z edytorów wbudowanych do moich szablonów. Więcej informacji można znaleźć w tym pytaniu:CKEditor i iFrame / YouTube / Inne osadzone wtyczki Pokaż dziwny kod HTML

Teraz wiem, że powinienem użyć czegoś takiego:

var data = CKEDITOR.instances.editable.getData();

Jak jednak zarządzać wieloma edytorami w ten sposób? Powiedziałem moim projektantom, żeby po prostu używali

contenteditable="true"

dla każdego div chcą być edytowalne. Dlatego nie mam identyfikatorów dla każdego edytora i nie wiem, ile edytorów będzie zawierał każdy plik szablonu. Chciałbym móc zapisać zarówno nieedytowalną zawartość, jak i oczywiście edytowalną treść w ostatecznym szablonie, który jest tylko Strona HTML5.

Oto rozwiązanie, które musiałem zapisać surową zawartość całego pliku szablonu za pomocą div o identyfikatorze:

$saveButton.click(function(e) {

    // Extract contents of magboy container
    var contents = $("#page-cnt").html();

    // Send contents to server
    $.ajax({
        url: '/pages/'+PageId+'/editor_save',
        type: 'POST',
        data: {
            containerContents: contents
        },
        success: function(response){
            alert("contents saved");
        }
    });

    // prevent original click behaviour
    e.preventDefault();
    return false;

});

Podsumowując moje pytanie:

Jak mogę zaimplementować funkcję zapisywania, która zapisuje zawartość kilku edytorów CKEditor w pełnej stronie szablonu?

Dziękuję bardzo za wszelką pomoc i jeśli możesz pomóc w tym pytaniu, odpowie również na to samo pytanie:Zapisywanie wielu edycji inline za pomocą CKEditor

questionAnswers(1)

yourAnswerToTheQuestion