2010-02-16 8 views
8

Sto sviluppando un plug-in per CKEditor che deve apportare alcune modifiche al contenuto dell'editor immediatamente prima del salvataggio. In FCKeditor, l'ho raggiunto usando l'evento ma non sono ancora riuscito a trovare un modo equivalente per farlo in CKEditor. Speravo che ci sarebbe stato un evento adatto a cui aggrapparsi, ma non sembra esserci. Qualcuno sa di un modo per farlo?Aggiorna il contenuto dell'editor immediatamente prima del salvataggio nel plug-in CKEditor

+0

Che 'evento/funzione save' stai usando? Il pulsante "Salva"? –

+0

Sì. Il plug-in verrà utilizzato dai proprietari dei siti che hanno già installato CKEditor, tuttavia hanno ritenuto opportuno mantenere il mio plug-in il più pulito possibile, il che significa non sostituire il pulsante di salvataggio standard, se possibile. Ho guardato la fonte e la mia scommessa migliore sembra aggiungere un gestore di eventi 'submit' al modulo che contiene l'editor, ma questo non si qualifica come pulito. –

risposta

6

È possibile utilizzare l'evento getData, ma fare attenzione perché è attivato anche per usi interni.

ho depositato http://dev.fckeditor.net/ticket/5254 di ricreare l'evento precedente

+0

In concomitanza con la creazione di un proprio gestore per l'evento di invio del modulo? –

+1

Questa sarebbe una soluzione alternativa. In effetti, è quello che avrei scelto in questo momento perché può essere più facile gestirlo correttamente fino a quando non viene generato un evento appropriato da CKEditor (non so davvero cosa vuoi fare, quindi suppongo che deve essere qualcosa di complesso che deve essere fatto solo dopo aver aggiornato la textarea) – AlfonsoML

+0

Il mio plug-in consente a un utente di incorporare parti del contenuto che sono memorizzate su un server diverso per il contenuto HTML principale. Questi sono rappresentati nel contenuto dell'editor come immagini segnaposto per impedire che vengano modificati in CKEditor. Immediatamente prima che l'editor salvi, voglio sostituire queste immagini segnaposto con il contenuto HTML che rappresentano, e quando l'editor viene caricato voglio convertire lo speciale HTML in segnaposto (cosa che posso fare con gli eventi esistenti). Forse c'è un altro approccio che dovrei prendere? –

1

Come il link qui sopra in realtà non ha la soluzione su evento OnAfterLinkedFieldUpdate substitude ho writen un breve post su come andare intorno ad esso.

Qui è la forma:

<form id="my_form" action="submit.php" method="post" name="my_form"> 
    <textarea id="my_text" name="my_text"></textarea> 
    <input id="submitForm" type="submit" name="submitForm" value="Submit" /> 
</form> 

JavaScript:

var formSubmitted = false; 
$("#submitForm").live('click', function(event) { 
    if (formSubmitted === true) { 
     formSubmitted = false; 
     return; 
    } 
    event.preventDefault(); 
    //put here function to edit content == OnAfterLinkedFieldUpdate 
    var editor = CKEDITOR.instances.my_text; 
    var html = editor.getData(); 
    html.replace(searchvalue, newvalue); 
    editor.setData(html); 
    formSubmitted = true; 
    $(this).trigger('click'); 
}); 

Il codice è here

Problemi correlati