2017-06-21 3 views
0

Ich entwickle zwei Gadgets in einer EPiServer CMS 9.2-Site mit den alten (MVC Controller) Style-Gadgets. Beide Gadgets benötigen einen Rich-Text-Editor. Ich bin in TinyMCE verdrahtet und es funktioniert gut das erste Mal, wenn eines der Gadgets den Editor instanziiert, aber dann im Hintergrund wieder fehlschlägt.Kann mehrere tinymce-Editoren nicht in verschiedenen EPiServer-Gadgets instanziieren

Der Code das Element instanziiert wird ausgelöst, die GadgetAttribute.ClientScriptInitMethod und meine init-Funktion sieht aus wie mit: der Aufruf von tinymce() abgeschlossen ist, ohne Fehler

MyGadget.init = function (e, gadget) { 
    $(gadget.element).find('textarea.tinymce').tinymce({ 
     theme: "modern" 
    }); 
}; 

Bei nachfolgenden Anrufungen sogar im selben Gerät, aber der Editor nicht ist in dem DOM (wie das Element vor den verwandten <textarea> und die zugrunde liegenden <textarea> nicht sichtbar ist.

Was könnte die Ursache sein? wie kann ich es beheben?

+0

Sind Sie eine eigene Download des Editors oder versuchen, EPiServer zu gebrauchen? Epi empfiehlt, sie nicht zu verwenden, um einen Editor in Ihre eigenen Schnittstellen einzubauen: https://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/9/Editing/Customizing-the-TinyMCE-editor/#rollyourown – egandalf

+0

@egandalf Ich habe meine eigene Kopie in meinem Modulverzeichnis –

+0

Haben Sie Ihren Code außerhalb des Dashboards getestet? Z.B. Richten Sie eine leere Seite ein und sehen Sie, ob Sie sie zweimal instanziieren können, ohne dass irgendetwas anderes in die Quere kommt. Immer hilft zu entfernen, welche Variablen Sie beim Testen können. – egandalf

Antwort

0

Sie müssen wahrscheinlich die init-Funktion für tinymce aufrufen und einen Selektor übergeben.

Etwas in dieser Richtung vielleicht? (Ungetestet)

tinymce.init({ 
    selector: '#gadgetElementId textarea.tinymce', 
}); 

More info here

+0

Ich benutze das jQuery-Plugin '$ (gadget.element) .find ('textarea.tinymce').' Zielt auf das spezifische Element, das ich denke. –

Verwandte Themen