2

貼り付けたテキストのHTMLをTinyMCEにクリーンアップして、Webサービスに渡し、テキストエリアに戻す必要があります。したがって、TinyMCEのCtrl + Vをオーバーライドしてテキストをキャプチャし、バックグラウンドリクエストを実行し、戻ったときにTinyMCEの貼り付けハンドラーを続行する必要があります。まず、TinyMCEのCtrl + Vハンドラーはどこにあり、それをオーバーライドする非破壊的な方法はありますか?(ソースコードを変更する代わりに)

4

2 に答える 2

3

ctrl+v イベントを処理して渡すプラグインを作成するか、貼り付けプラグインを変更することができます。次のコードはplugins/paste/editor_plugin.jsにあり、ctrl+v イベントを処理します。

  handleEvent : function(e) {
          // Force paste dialog if non IE browser
          if (!tinyMCE.isRealIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false) && e.ctrlKey && e.keyCode == 86 && e.type == "keydown") {
             window.setTimeout('tinyMCE.selectedInstance.execCommand("mcePasteText",true)', 1);
             return tinyMCE.cancelEvent(e);
          }

          return true;
       },

tinyMCE用のプラグインの作成に関する詳細情報を次に示します。

于 2008-09-23T08:44:17.713 に答える
0

Tiny Editor には「貼り付け」というプラグインがあります。

それを使用する場合、init-section で 2 つの関数を定義できます。

/**
 * This option enables you to modify the pasted content BEFORE it gets
 * inserted into the editor.
 */
paste_preprocess : function(plugin, args)
{
     //Replace empty styles
    args.content = args.content.replace(/<style><\/style>/gi, "");
}

/**
 * This option enables you to modify the pasted content before it gets inserted
 * into the editor ,but after it's been parsed into a DOM structure.
 *
 * @param plugin
 * @param args
 */
paste_postprocess : function(plugin, args) {
    var paste_content= args.node.innerHTML;
    console.log('Node:');
    console.log(args.node);

}
于 2018-11-08T19:32:43.177 に答える