it-swarm.com.de

Schließen Sie das TinyMCE-Plug-in-Fenster, wenn Sie es anklicken

Ich habe ein kleines Plugin erstellt, das der TinyMCE-Symbolleiste eine Schaltfläche hinzufügt. Wenn Sie darauf klicken, wird über editor.windowManager.open() ein Popup-Fenster geöffnet. Dieses Popup kann geschlossen werden, indem Sie (1) auf die Schaltflächen "Abbrechen" oder "OK" klicken oder (2) die Taste esc drücken.

Ich versuche herauszufinden, wie ich das Popup meines Plugins auch schließen kann, indem ich nicht darauf klicke (z. B. wenn ich auf das TinyMCE-Overlay außerhalb des Popups selbst klicke). Der Insert/Edit-Link von WP löst ein Popup mit dieser Funktion aus, aber soweit ich weiß, verwendet das Plugin ein benutzerdefiniertes Dialogfeld und ich hatte gehofft, dass es eine TinyMCE-API-Methode/-Eigenschaft gibt, die dies ermöglicht, aber die Dokumentation ist ziemlich knapp.

Hier ist mein Plugin als Referenz:

(function() {
  tinymce.PluginManager.add('custom_plugin', function(editor, url) {
    editor.addButton('custom_plugin', {
      text: 'Plugin',
      icon: false,
      onClick: function() {
        editor.windowManager.open({
          title: 'Custom Plugin',
          body: [
            {
              type: 'textbox',
              name: 'theText',
              label: 'Text',
              value: '',
              minWidth: 800
            }
          ],
          onsubmit: function(e) {
            editor.insertContent('[tag]'+e.data.theText+'[/tag]');
          }
        });
      });
    });
  });
})();
1
cfx

Sie haben die Frage vor langer Zeit gestellt, aber ich habe nach etwas Ähnlichem gesucht und eine Lösung gefunden.

Stellen Sie auf den Post-Edit-Bildschirmen (auf denen tinyMCE installiert ist) ein Administrationsskript in die Warteschlange. Dann benutze den folgenden Code:

(function($) {
    'use strict';

    $(document).ready(function() {
        $(document).on( 'click', '#mce-modal-block', function() {
            tinyMCE.activeEditor.windowManager.close();
        });
    });

})(jQuery);

Auf diese Weise können Sie Popups schließen, die von tinyMCE stammen, indem Sie außerhalb des Fensters klicken.

4
Sohan Zaman