web-dev-qa-db-fra.com

Fermer la fenêtre du plug-in TinyMCE en un clic

J'ai créé un petit plugin qui ajoute un bouton à la barre d'outils TinyMCE. Lorsque vous cliquez dessus, une fenêtre contextuelle s'ouvre via editor.windowManager.open(). Ce menu contextuel peut être fermé en (1) cliquant sur les boutons "Annuler" ou "OK", ou (2) en appuyant sur la touche esc.

J'essaie de voir comment je peux également fermer le popup de mon plugin en cliquant loin (par exemple, si je clique sur la superposition TinyMCE en dehors du popup lui-même). Le lien Insérer/Modifier de WP déclenche une fenêtre contextuelle avec cette capacité, mais d'après ce que je peux dire, ce plug-in utilise une boîte de dialogue personnalisée et j'espérais qu'une méthode/propriété de l'API TinyMCE pourrait l'activer, mais la documentation est plutôt concise.

Voici mon plugin, pour référence:

(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

Vous avez posé la question il y a longtemps, mais je cherchais quelque chose de similaire et j'ai trouvé une solution.

Mettre en file d'attente un script côté administrateur sur les écrans de post-édition (où nous avons tinyMCE). Ensuite, utilisez le code ci-dessous:

(function($) {
    'use strict';

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

})(jQuery);

De cette façon, vous pouvez fermer n’importe quel popup venant de tinyMCE en cliquant à l’extérieur.

4
Sohan Zaman