2010-12-16 121 views
1

J'ai une petite fenêtre contextuelle avec un contenu dynamique. Rien de trop complexe. Il a juste une table avec du texte dedans.Recherche de la taille optimale de la fenêtre contextuelle avec JavaScript

Comment puis-je trouver la hauteur et la largeur d'une fenêtre afin que son contenu apparaisse entièrement?

Le problème avec l'utilisation de valeurs statiques arbitraires pour la dimension de la fenêtre est qu'elle peut être très éloignée en fonction des paramètres de police du navigateur.

Si ce n'est pas possible, quelles sont les pratiques courantes?

Merci.

+0

Quelque chose comme '$ (win) .width (win.innerWidth) .height (win.innerHeight)'? – Fred

+0

En fait, je n'utilise pas jQuery. J'utilise le dojo. –

Répondre

1

Copiez le contenu HTML que vous souhaitez placer dans la fenêtre contextuelle dans une div positionnée hors de la page, mesurez-la, puis supprimez la div. Je ne sais pas dojo, désolé, mais c'est une façon de le faire en jQuery:

var measuringDiv = $('<div class="sameAsPopupContainer" style="position:absolute; left:9999px; top:0px"></div>'); 
$('body').append(measuringDiv); 
measuringDiv.html(theHtmlForTheTable); 
heightOfContent = measuringDiv.width(); 
widthOfContent = measuringDiv.height(); 
measuringDiv.remove(); 

Je suppose que des méthodes similaires Dojo. Il est important que la div hors page que vous créez conserve les mêmes règles de style que le conteneur contextuel, ce qui peut être un peu délicat.