2017-08-24 1 views
0

Die neue TinyMCE (Version 4) ermöglicht die Verwendung von:TinyMCE 4: Wie klebte Inhalt in Klartext ermöglichen konvertieren und in dem normalen Modus

paste_as_text: true 

Das Problem ist, dass diese alle Pasten aktiviert umgewandelt werden einfacher Text. Ich würde in der Lage sein, dies zu tun: Wenn der Benutzer Inhalt direkt in den Tinymce einfügt, wird er immer den Inhalt bereinigen und in reinen Text umwandeln, aber wenn der Benutzer einen Knopf klickt, erscheint ein Dialog, so dass der Benutzer Inhalt in diesen Dialog einfügen kann würde es nicht "anfassen", es würde es direkt in den Editor einfügen.

AKTUELL das war das Standardverhalten auf 3.X-Versionen, Sie könnten eine bestimmte PASTE FROM WORD-Taste haben (die tatsächlich für alles, was Sie einfügen wollten), so dass Sie Inhalte aus Word und es einfügen und es würde nicht erhalten in Klartext konvertiert.

Ich sehe, es gibt eine externe "leistungsstarke Paste Plugin" von tinymce, aber es ist nicht frei, so wie kann ich dieses Problem lösen, ohne ein Plugin zu kaufen?

EDIT:

Auch Ereignis der Paste Prozess Befestigung kann ich nicht die paste_as_text wie diese dynamisch ändern, zum Beispiel:

tinymce.settings.paste_as_text = false; 

ich ohne Fehler diese Zeile in meinem Code ausführen kann, aber es produziert Keine Wirkung, ich kann weiterhin keinen Inhalt einfügen, ohne als einfacher Text vereinfacht zu werden.

Antwort

1

Wenn Sie die paste Plugin standardmäßig geladen wird es zwei Elemente im Menü Bearbeiten fügt hinzu:

  • Paste
  • Einfügen als Text

... so etwas wollen Sie ist ein Standard Teil des paste Plugins. In TinyMCE 4 wird es über das Bearbeitungsmenü und nicht über die Symbolleiste angezeigt.

EDIT # 1: Wenn Sie die pastetext Schaltfläche zur Symbolleiste hinzufügen, die Sie die Paste Funktion zwischen Einfügen als Text und regelmäßige Paste hin- und herzuschalten. Mit der Schaltfläche wird das Verhalten für ein Einfügeereignis umgeschaltet. Es verhält sich nicht genau wie in TinyMCE 3 (das Verhalten, das Sie in Ihrer Frage beschreiben).

EDIT # 2 - Programmgesteuertes Ändern dieses Verhalten

Sie Code verwenden können, um diese Einstellung zu wechseln, aber Sie müssen ein paar verschiedene Anrufe zu bekommen, was Sie brauchen.

Zuerst müssen Sie bestimmen, was der aktuelle "Modus" für das Einfügen-Plugin ist. Hierfür können Sie verwenden:

tinymce.activeEditor.plugins.paste.clipboard.pasteFormat 

Dies wird (basierend auf der aktuellen Version von TinyMCE 4.6.5) zurückzukehren einen von drei Werten: "html", "text" oder undefined. Ich glaube, es beginnt immer als undefined, bis Sie den Schalter einmal auslösen.

Wenn Sie das Verhalten in den anderen Modus zu wechseln, dies zu tun:

tinymce.activeEditor.execCommand('mceTogglePlainTextPaste'); 

Beachten Sie, dass ein Toggle ist - so was auch immer er eingestellt wurde, um es in die entgegengesetzte Modus zu wechseln. Es gibt keinen offengelegten Methodenaufruf, den Sie verwenden können, um es zu dem einen oder dem anderen Modus zu erzwingen.

+0

Das Problem ist, dass ich in der Lage sein muss, "Umschalten dieser Schalter" über die Symbolleiste und nicht die Menüleiste, habe ich tatsächlich die Menüleiste versteckt. Ist Ihnen ohnehin bekannt, PAST NORMAL und PAST PLAIN TEXT über benutzerdefinierte Schaltflächen in der Symbolleiste zuzulassen? – Samul

+0

@Samul Siehe meine Bearbeitung oben. –

+0

wow das hat wirklich gut funktioniert !!! ;) Der Knopf ist großartig! Gibt es auf jeden Fall eine dynamische Ein-/Ausschalten mit dem Tinymce-Objekt? Diese Lösung, die Sie zur Verfügung gestellt haben, ist wirklich großartig, aber in einigen Fällen möchte ich das Einfügen im Nur-Text-Schalter mit JS aktivieren/deaktivieren. Ich denke, ich könnte einen Klick in den Knopf vortäuschen, aber ich denke, ich würde eine bessere Alternative bevorzugen, wie paste_as_text auf falsch oder wahr setzen zu können, wann immer ich will. – Samul

Verwandte Themen