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]');
}
});
});
});
});
})();
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.