Question

travaille actuellement sur un site qui utilise beaucoup d'objets cfwindow et je me demandais si quelqu'un sait d'une manière de redimensionner dynamiquement la fenêtre de sorte que tout le contenu s'intègre sans avoir besoin de barres de défilement.

Je l'ai essayé d'utiliser le trop-plein = configuration visible, mais il ne semble pas faire une différence.

Merci d'avance pour tout conseil.

Était-ce utile?

La solution

Eh bien, ce genre de tâche est classique lors de l'utilisation des pop-ups pour afficher des images. Il a été fait en mesurant la taille de l'image et le redimensionnement fenêtre à l'aide donné naissance à window.resizeBy(w,h). Ceci est encore la méthode applicable, je pense.

Deuxième option similaire calcule la taille nécessaire sur le côté serveur et passer à la cfwindow attribue width et height. Dites, vous pouvez capturer le contenu dans la cfcontent et vérifiez sa longueur en caractères.

S'il vous plaît noter que ces deux méthodes ne sont pas fiables lorsque vous travaillez avec le contenu du texte, car le rendu des polices peut être très différente pour les utilisateurs. Donc, en réservant une certaine hauteur supplémentaire peut être utile.

Autre façon délicate est de vérifier si les barres de défilement sont présents, pour la fenêtre déjà ouverte. Il y a un scrollHeight d'attribut que vous pouvez comparer avec clientHeight et augmenter la hauteur. Cela peut éventuellement produire des effets laid « sauter » dans certains navigateurs, mais il devrait fonctionner.

Je me suis intéressé et essayé test rapide de la dernière méthode. Tout d'abord donné naissance à pop-up avec w / h = 200 et ce texte de réponse (mots ci-dessus) que le contenu. Ensuite, je l'ai fait dans la fenêtre pop-up:

<script type="text/javascript">
window.onload = function() {

    // check the size before resize
    alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight =  " + document.body.scrollHeight);

    if (window.innerHeight < document.body.scrollHeight) {
        // here's where we can play with resize steps and other specific trickery
        // now we're trying to expand size a bit
        window.resizeBy(window.innerWidth + 50, window.innerHeight + 50);
    }

    // check the size after resize
    alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight =  " + document.body.scrollHeight);

}
</script>

Alerte n ° 1:

Window Width = 200
Window Height = 200
ScrollHeight =  783

Alerte n ° 2:

Window Width = 450
Window Height = 450
ScrollHeight =  358

S'il vous plaît noter que je ne suis pas sûr à 100% (et ne peut pas vérifier en ce moment) que les attributs de window.innerWidth/Height travailleront dans IE - vous devriez envisager aussi des attributs document.documentElement.clientWidth/Height

.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top