2017-08-24 21 views
0

新規のTinyMCEを(バージョン4)に貼り付けたコンテンツを変換できるようにする方法の使用を可能にする:TinyMCEの4:プレーンテキストに通常モード

paste_as_text: true 

問題は、これがに変換される全てのペーストを可能にすることですプレーンテキスト。私はこれを行うことができるだろう:ユーザーがコンテンツをペイントに直接貼り付けると、コンテンツが常に消去されてプレーンテキストに変換されますが、ユーザーがボタンをクリックするとダイアログが表示され、ユーザーはこのダイアログとtinymceそれに触れないで、エディタに直接貼り付けます。

これは3.Xバージョンのデフォルトの動作でした。実際にはペーストしたいもののために働くWORDボタンを押して特定のPaste from WORDボタンを押すと、プレーンテキストに変換されます。

tinymceから外部の "強力なペーストプラグイン"がありますが、それは無料ではないので、どうすればこの問題をプラグインを購入する必要なく解決できますか?

EDIT:

がさえ私には、例えば、動的にこのようなpaste_as_textを変更することはできません貼り付けプロセスにイベントをアタッチ:

tinymce.settings.paste_as_text = false; 

私はエラーなしで自分のコードにその行を実行することができますが、それが生成します効果がないので、プレーンテキストとして単純化せずにコンテンツを貼り付けることはできません。

答えて

1

あなたは、デフォルトでpasteプラグインをロードすると、それは、[編集]メニューには2つの項目追加しますので、何をしたいが標準です...テキスト

として

  • 貼り付け
  • 貼り付けpasteプラグインの一部です。 TinyMCE 4では、ツールバーではなく編集メニューから表示されます。

    EDIT#1:ツールバーにpastetextボタンを追加すると、テキストとして貼り付けと通常の貼り付けの間で貼り付け機能を切り替えることができます。このボタンは、ペーストイベントで発生する動作を切り替えます。それはTinyMCE 3(あなたがあなたの質問で説明する振る舞い)で行われたこととまったく同じように振る舞いません。

    EDIT#2 - プログラムであなたは、この設定を切り替えるには、コードを使用することができますが、あなたが必要なものを得るために異なる呼び出しのカップルを必要とする

    、この動作を変更します。

    まず、現在の「モード」がペーストプラグインのものであるかどうかを判断する必要があります。このためには使用することができます。

    tinymce.activeEditor.plugins.paste.clipboard.pasteFormat 
    

    (4.6.5の現在のTinyMCEのリリースに基づいて)この意志を3つの値のいずれかを返す:"html""text"、またはundefinedを。私はあなたが一度トグルを開始するまで、それはいつもundefinedとして始まると信じています。

    あなたはこれを行うことができ、他のモードに動作を切り替える場合:あるある

    tinymce.activeEditor.execCommand('mceTogglePlainTextPaste'); 
    

    トグル - それは逆のモードに切り替わりますし、それが設定されたので、何でも。 1つのモードまたは他のモードに強制するために使用できる公開されたメソッド呼び出しはありません。

+0

問題は、ツールバーを使用してメニューバーではなく、実際にはメニューバーを隠して「切り替えを切り替える」必要があることです。とにかくツールバーのカスタムボタンを使って、PAST NORMALとPAST PLAIN TEXTを許可することは承知していますか? – Samul

+0

@Samul上記の私の編集を参照してください。 –

+0

すごくうまくいった! ;)ボタンは素晴らしいです!とにかく、私はそれをtinymceオブジェクトを使って動的にオン/オフしますか?あなたが提供したこのソリューションは本当に素晴らしいですが、JSを使用してプレーンテキストスイッチで貼り付けを有効/無効にしたい場合もあります。私はボタンのクリックを偽造することができると思うが、私はいつでも私が望むときにpaste_as_textをfalseまたはtrueに設定できるようにするより良い選択肢を好むだろうと思う。 – Samul

関連する問題