Dies ist eine alte Frage, aber anscheinend erregt sie heute (zweites Halbjahr 2020) immer noch viel Aufmerksamkeit.
Leider, mit der Veröffentlichung des TinyMCE v5, die meisten der Workarounds fand ich einfach nicht mehr funktionieren. Ich bin sicher, dass sie einmal gearbeitet, aber jeder TinyMCE Release scheint neue " bringen Zwänge ", die diese Umgehungslösungen lahmlegen...
Ohne eine Diskussion daraus machen zu wollen, glaube ich, dass es die Kosten der Evolution sind. Für ein altes Produkt wie TinyMCE ist es unglaublich zu sehen, dass es immer noch da ist und sich weit über die Konkurrenz erhebt. Es ist bei weitem eine der effizientesten und flexibelsten Lösungen für alle Umgebungen, einschließlich mobiler und für diese neuen Sprachen und Frameworks, die seit geboren (was in letzter Zeit ein Trend zu sein scheint, mit neuen kommen aus dem Nichts jeden Tag).
Mit diesem Gedanken im Hinterkopf und nach so vielen (fehlgeschlagenen) Versuchen, die meisten der vorgeschlagenen Lösungen zum Laufen zu bringen, beschloss ich, mich mit dem Quellcode (TinyMCE v5.4) zu beschäftigen, um ihn besser zu verstehen. Was ich fand, war ein viel besseres Produkt insgesamt, und dass die Lösung, die jeder gesucht hat, ist viel einfacher zu implementieren, als ich erwartet hatte.
Ohne weitere Verzögerung, hier meine Lösung, die einfach funktioniert. Sie implementiert einen Editor, der den gesamten Dokumentbereich (oder was auch immer Sie wollen) einnimmt, der WILL die Größe mit dem Browser zu ändern, was KEIN Skript, KEINEN Hack und KEINEN Trick erfordert, der Cross-Browsing-Probleme verursachen könnte. So geht's:
-
Geben Sie Ihrem <html>
y <body>
DOM-Objekte die fehlenden Eigenschaften der Größe und passen Sie die Abstände entsprechend Ihren Bedürfnissen an:
html, body {
width : 100%;
height : 100%;
margin : 0 !important;
padding : 0 !important;
overflow : hidden; / Required if you want to have the editor taking the entire page. /
/ Otherwise, set as you need it. /
}
-
TinyMCE schlägt die <textarea>
eingebettet werden in eine <form>
Objekt. Unabhängig davon, ob Sie es wie vorgeschlagen verwenden oder nicht, geben Sie ihm einfach eine ID und die folgenden CCS-Eigenschaften (in meinem Fall ist es eingestellt als <form method="post" id="editorBase">
):
editorBase {
display : block !important;
width : 100% !important;
height : 100% !important;
}
-
In der TinyMCE-Initialisierung fügen Sie die folgenden Einstellungen hinzu oder ändern Sie sie:
tinymce.init({
// Required Settings:
width : '100%', // Note value is set as "string".
height : '100%', // Note value is set as "string".
resize : false, // Suggestion: disable the statusbar resizing. :)
// Suggested Settings:
toolbar_sticky : true, // Keep the menu and tollbar in a fixed position .
toolbar_location : 'top', // You can try 'top', 'bottom' or 'auto'.
toolbar_mode : 'floating', // It is simply a button behavior settings.
// Options are: 'floating', 'sliding', 'scrolling', or 'wrap'.
});
-
Doch in der TinyMCE-Initialisierung Einstellungen, finden Sie die plugins
Artikel und entfernen die autoresize
(das ist der wichtigste Schritt von allen!).
-
Erledigt! Probieren und testen Sie es aus! (YES! Es ist alles fertig!)
Mit diesen einfachen Einstellungen können Sie den Editor an jedes Design anpassen. Fühlen Sie sich frei, ihn nach Bedarf anzupassen. Vergessen Sie nur nicht, die Option width
und die height
Eigenschaften in der TinyMCE-Initialisierung Einstellungen als Zeichenketten, und halten Sie sie mit den CSS-Einstellungen für die <form>
.
Der Grund für die Verwendung von Zeichenketten in der width
y height
Eigenschaften der TinyMCE-Initialisierung Einstellungen anstelle von numerischen Werten zu verwenden, ist, dass Sie "%", "em", "pt" usw. verwenden können. Andernfalls würde die vorgestellte Lösung niemals funktionieren.
Ein weiterer Trick, um das Ganze noch übersichtlicher zu gestalten, ist die Einstellung des Editors als grenzenlose Haut (eine Funktion, die nur in der " professionell " Version von TinyMCE). Nein, es ist nicht eine hacken. Es handelt sich um eine einfache Anpassung des CSS und ist durch die EULA und die Lizenzierung von TinyMCE vollständig erlaubt. Fügen Sie einfach die folgende CSS zu Ihrer Seite Stylesheet und es genießen eine randlose Editor kostenlos:
.tox-tinymce { border:none !important; }
Einfacher geht es nicht.
Viel Spaß beim Codieren!