web-dev-qa-db-fra.com

La largeur de ThickBox ne peut pas être modifiée dans admin

J'essaie de créer une fenêtre contextuelle dans la zone d'administration (dans l'écran d'édition post) et je ne peux pas élargir ma boîte à outils plus large que 670px (largeur: 670px).

Voici mon code thickbox qui affiche thickbox:

tb_show( ed.getLang('m7.popup_title'), '#TB_inline?width=800&height=600&inlineId=mygallery-form' );

(cela fonctionne après avoir cliqué sur le bouton tinyMCE) et je reçois div avec id = "TB_window"

<div id="TB_window" style="width: 670px; height: 216px; margin-left: -335px; top: 48px; margin-top: 0px; visibility: visible;">

(le code provient de google browser)

Donc, si je change manuellement de largeur, puis de redimensionner le navigateur, il restitue 670px à la largeur. Peut-il être modifié de manière à ce que thickbox affiche tout le contenu d’une largeur de 800px?

il crée insede #TB_window div avec id = "TB_ajaxContent" qui fait 800 pixels de large

4
Maikal

D'après le commentaire sous ma question (peut-être que quelqu'un pourrait le manquer, donc l'afficher en tant que réponse) [PS: l'a légèrement modifié]:

Je pense avoir trouvé une solution pour changer la largeur, mais ce n'est pas la vraie solution. Je ne comprends toujours pas pourquoi la largeur de la boîte épaisse est de 670px (comme vous pouvez le voir dans mon code (suivra ensuite) la largeur globale de la boîte épaisse est défini comme l'argument passé !!) Donc, la solution était:

function m7_resize_thickbox(){
  jQuery(document).find('#TB_window').width(TB_WIDTH).height(TB_HEIGHT).css('margi‌​n-left', - TB_WIDTH / 2);
}

jQuery( document ).on( 'ready', function() {
  tb_show( ed.getLang('m7.popup_title'), '#TB_inline?width=800&height=600&inlineId=mygallery-form' );
  m7_resize_thickbox(); // after tb_show we need to update width/height values; we could also do something like jQuery( window ).trigger( 'resize' );
}

jQuery(window).on( 'resize', m7_resize_thickbox );
1
Maikal

Vous avez raison, cela ne peut pas être changé et il semble qu'il n'y ait eu aucun changement à ce sujet depuis votre question. Il y a un ticket si quelqu'un est intéressé à travailler dessus dans Wordpress ...

Wordpress Core Trac

1
Ryan Bayne

Dans ce cas, vous pouvez utiliser css pour forcer une largeur minimale de 800 pixels.

#TB_window {
  min-width:800px!important;
}
1
user3635808

Je sais que cette publication est ancienne, mais vous pouvez simplement réinitialiser l'attribut style de l'élément en utilisant la fonction setAttribute juste en dessous de tb_show ().

 tb_show (ed.getLang ('m7.popup_title'), '#TB_inline? width = 800 & height = 600 & inlineId = mygallery-form'); 
 
 // Récupère l'identifiant de l'élément 
 var tb = document.getElementById ('TB_ajaxContent'); 
 
 // définit l'attribut sur une chaîne vide ou sur la largeur/hauteur souhaitée. 
 tb.setAttribute (' style ',' ');

Si vous définissez l'attribut style sur une chaîne vide, vous devriez pouvoir utiliser css à partir d'un fichier externe plutôt que inline.

1
FiGO

J'ai rencontré ce problème aussi, mais j'avais besoin d'ajouter de la hauteur. J'ai trouvé ce code CSS très efficace!

.thickbox-loading {
    min-height: 500px!Important;
}

J'ai mis cela dans le CSS pour le plug-in avec lequel je rencontrais un problème, dans la zone d'administration de ce plug-in particulier, de sorte que cela ne devrait avoir aucune incidence.

J'espère que cela t'aides!

0
R. Adamo