J'ai demandé comment je peux redimensionner la fenêtre du navigateur avec JavaScript . Tout le monde m'a dit de ne pas le faire. Pourquoi est-ce une mauvaise pratique?
Je pense que parfois ça peut être bon. Par exemple, je veux montrer aux utilisateurs une page contextuelle de tweet. Après qu'un utilisateur a tweeté, je veux le rediriger vers la page principale de Twitter pour lui permettre de vérifier son Tweet. Mais la page de tweet est petite et la page principale devrait être grande. Dans ce cas, l'agrandissement de la fenêtre du navigateur semble bon pour l'utilisateur. Ai-je tort? Alors, comment dois-je faire dans ce cas?
Mise à jour
Je pense que je dois clarifier quelque chose.
Et, la fonction JavaScript resizeTo
peut redimensionner le navigateur. Lorsque j'ai testé cette fonction, elle fonctionne bien dans les navigateurs mais dans Chrome. Dans Chrome, cela fonctionne uniquement dans les fenêtres contextuelles. Je peux me tromper, mais je suppose que Chrome pourrait également penser que la fonction resizeTo
serait nécessaire dans les fenêtres contextuelles.
Update2
La plupart des gens ne veulent tout simplement pas que la méthode resizeTo
soit utilisée à tout moment et n'importe où. Je pense que si cette méthode était totalement mauvaise et inutile, les fournisseurs de navigateurs avaient déjà désactivé cette méthode, mais ils ne l'ont pas fait.
Dans Chrome et Opera, la méthode resizeTo
est disponible uniquement dans les popups, et dans Firefox, les utilisateurs peuvent la désactiver manuellement. Je suis sûr que l'on doit être très prudent lors de l'utilisation du Mais je pense que cette méthode peut être utile dans certains cas.
J'ai l'impression que tout le monde vient de lire le titre et non toute la question. Il pose spécifiquement des questions sur le cas d'une fenêtre contextuelle.
Une pratique très courante en UI/UX consiste à utiliser une fenêtre contextuelle lorsque l'application actuelle interagit avec une autre. Pensez à soumettre de petites informations comme le partage de la page actuelle ou encore plus, la connexion à un autre service.
Flickr le fait lors de la connexion avec un compte Google et même cette page le fait lors du partage d'une question.
Je pense que l'utilisateur préfère rester sur la page actuelle et avoir une fenêtre little qui lui permet de se connecter à Facebook par exemple. Ils peuvent toujours voir qu'ils sont sur le site où ils veulent être en arrière-plan, mais interagissent simplement avec un autre, puis la petite fenêtre se ferme lorsque la soumission est réussie. Pourquoi les rediriger vers une toute nouvelle page pleine fenêtre?
Dans ce cas; dimensionner uniquement la fenêtre contextuelle, mais pas l'écran principal, est parfaitement acceptable. Il n'est pas nécessaire d'avoir une fenêtre plein écran lorsqu'il n'y a que deux champs de texte et un bouton d'envoi.
Vous ne devez rien faire qui remplace ce que l'utilisateur a précédemment choisi. Votre application est hébergée dans les fenêtres du navigateur. Il ne possède pas la fenêtre du navigateur, il ne devrait donc rien y faire.
La même logique dicte que vous ne devez pas remplacer un comportement de navigateur tel que le bouton de retour.
En fait, vous ne devez pas forcer les fenêtres de votre propre application à changer de taille. L'utilisateur a choisi la taille et l'emplacement de la fenêtre pour ses propres raisons que vous ne connaissez pas.
L'utilisateur ne s'attend pas à ce que votre application modifie la taille ou la position de la fenêtre - elle suit donc le principe du moindre étonnement pour ne rien faire.
"Les gens font partie du système. La conception doit correspondre à l'expérience, aux attentes et aux modèles mentaux de l'utilisateur."
Vous prenez le contrôle de l'utilisateur. Par exemple; Si la page Twitter change le navigateur en une petite fenêtre et qu'ils changent d'avis avant de tweeter et de choisir le bouton de navigateur `` retour '', ils se retrouvent avec une petite fenêtre et doivent le trier eux-mêmes à la taille qu'ils souhaitent ça doit être.
C'est aussi un comportement inattendu; vous ne voulez pas les surprendre en faisant faire à la fenêtre quelque chose à quoi ils ne s'attendent pas. Les utilisateurs se méfient lorsque le navigateur prend le relais, vous risquez donc de le fermer en pensant qu'un virus a pris le contrôle de mon PC.
Ne bouge pas mon fromage!
J'ai mes fenêtres habilement disposées sur mes multiples moniteurs à écran large, j'ai donc quelques navigateurs non maximisés (pour éviter le gaspillage d'espace de certains sites sur le côté). La dernière chose que je souhaite, c'est que vous redimensionniez mon navigateur et tous ses onglets à une taille qui vous semble appropriée.
D'autres consommateurs moins sûrs de votre site Web peuvent être effrayés par le faire, je suppose, et pourraient peut-être garder la fenêtre de cette taille pour toujours (car ils ne savent peut-être pas comment changer la taille).
Si vous voulez faire un popup, pensez aux boîtes de dialogue modales jquery UI. Même effet, pas de fenêtre popup, pas de redimensionnement nécessaire.
De nombreux utilisateurs ont plusieurs fenêtres ouvertes en même temps (certaines sur plusieurs écrans), et le redimensionnement peut vraiment gâcher la mise en page. De plus, la plupart des utilisations d'Internet (du moins dans mon expérience personnelle) englobent plusieurs onglets ouverts. Le redimensionnement de la fenêtre du navigateur affectera non seulement votre application, mais également les autres onglets de la fenêtre. Enfin, il est tout simplement ennuyeux lorsque la fenêtre du navigateur change soudainement d'elle-même.
La raison pour laquelle vous ne devez pas le faire n'a rien à voir avec les utilisateurs possédant leur page Web plutôt que la page elle-même.
Si vous le faites, cependant, vous ne modifierez pas simplement l'état de votre application Web. Vous allez modifier l'état de toutes les applications Web ouvertes par l'utilisateur.
Avant onglets du navigateur existait, ce n'était pas un problème. Chaque application Web avait sa propre fenêtre, donc le redimensionnement de la fenêtre n'a pas affecté les autres applications Web.
En raison des onglets, le redimensionnement de la fenêtre signifie que les autres onglets seront également redimensionnés. Outre de nombreux calculs à partir du navigateur, ce qui peut le faire se bloquer (en effet, le redimensionnement d'une page entraîne un recalcul de l'arbre de rendu, chaque fois que le navigateur a un redimensionnement [1] ...), il peut également agacer l'utilisateur , car il a peut-être redimensionné la fenêtre pour s'adapter parfaitement à une autre application Web.
[1] La raison pour laquelle j'insiste sur ce point est que j'étais une fois sur une page qui a trouvé amusant de redimensionner lentement la fenêtre de près d'un point en plein écran. C'était horrible et certainement pas impressionnant.
Parfois, de petites fenêtres sont nécessaires, mais celles-ci doivent être implémentées en utilisant javascript ou un cadre basé sur celui-ci, par exemple jQuery. Vous devez toujours vous en tenir à travailler dans la fenêtre fournie par le navigateur et ne jamais essayer de la redimensionner. J'oserais dire que c'est comme essayer de changer la résolution du bureau car vous redimensionnerez la fenêtre pour tous les autres onglets.
De plus, de nos jours, vous ne pouvez pas supposer que vos utilisateurs utilisent un ordinateur traditionnel avec clavier et souris, tabulation alt et quoi d'autre. Que se passe-t-il si un utilisateur accède à votre site à l'aide d'un iPad/Android/appareil mobile. Le lancement d'une nouvelle fenêtre et le redimensionnement (même pas possible sur certaines plates-formes) détruiraient complètement l'expérience/le flux de l'utilisateur.
Vous devez considérer la fenêtre dans laquelle votre site Web/application est chargée comme votre seul espace disponible et travailler dans ses limites.
Personnellement, si vous redimensionnez le navigateur ou faites quelque chose qui me gêne, je fermerai votre page et la bannirai sur mon pare-feu pour m'assurer de ne plus jamais la retrouver, même pas par erreur.
"Dans ce cas, l'agrandissement de la fenêtre du navigateur semble bon pour l'utilisateur." <- Tout ce qui "semble bon pour l'utilisateur" est intrinsèquement faux. Laissez l'utilisateur choisir ce qui lui convient le mieux.
C'est une mauvaise pratique lorsque votre utilisateur est humain.
Lorsque votre utilisateur est un framebuffer virtuel, c'est différent. Dans les tests automatisés, nous devons souvent travailler avec des fenêtres de tailles spécifiques pour garantir que les éléments, les événements et les interactions sont capturés et traités de manière cohérente.
Il est extrêmement gênant d'obtenir que le système d'exploitation change de résolution sur le framebuffer, vous devez quitter l'environnement dans lequel vous travaillez et vous automatisez et descendre et déclencher des commandes automatiques au niveau du système d'exploitation. Mieux vaut simplement redimensionner la fenêtre du navigateur (virtuel) et continuer.
Le problème est que la plupart des navigateurs ne le permettent pas car cela interfère avec "l'expérience utilisateur". Ce qui signifie que les utilisateurs sont exposés à des sites qui ne fonctionnent pas ou à des sites qui ne fonctionnent pas à des résolutions/dimensions/ratios d'écran inhabituels.
Oui, vous vous trompez.
Imaginez que j'ai une vidéo en cours de lecture à droite sur mon écran. Imaginez que votre petite fenêtre Twitter s'agrandisse et qu'elle apparaisse devant la vidéo. Que vais-je faire ? Tout d'abord, je vais rendre la fenêtre Twitter petite. Ensuite, je choisirai d'utiliser un navigateur Web qui n'autorise pas les pages à le faire. En effet, j'ai plusieurs navigateurs Web qui me respectent: ils ne permettent pas aux pages de s'agrandir. Les navigateurs Web seront de plus en plus comme ça. Les utilisateurs ont gagné. L'ère de la toute-puissante page Web est révolue.
La fenêtre est petite. D'ACCORD. Ensuite, il y a plus de contenu dans la fenêtre. Si l'utilisateur veut voir le contenu complet, l'utilisateur décide d'agrandir la fenêtre. C'est facile. Il y a des barres de défilement qui indiquent à l'utilisateur qu'il y a plus de contenu. Mais l'utilisateur fait ce qu'il veut. Peut-être que l'utilisateur n'est pas intéressé à en voir plus. Peut-être que l'utilisateur n'est pas du tout intéressé par ce contenu.
Et les fenêtres contextuelles sont mauvaises. Toujours. Je les interdit tous.
Les autres réponses ont manqué un fait essentiel: les liens dans une popup peuvent être configurés pour s'ouvrir dans la fenêtre d'origine! Si votre popup charge une autre page qui devrait être en plein écran, vous pouvez l'ouvrir dans la fenêtre qui a généré le popup, et fermer le popup en même temps. Voir exemple 4 ici pour plus de détails.
Il convient également de noter que, en ignorant la taille, une fenêtre contextuelle n'est pas toujours la même qu'une fenêtre de navigateur normale. Les fenêtres contextuelles sont des fenêtres isolées et simples sans fonctionnalité de navigateur, telles que la barre d'adresse, les barres d'outils, les boutons Précédent/Suivant, etc. Redimensionner un popup dans une fenêtre plein écran n'est pas un remplacement acceptable pour ouvrir une page dans une fenêtre normale.
Mon navigateur ne peut mémoriser qu'une seule taille intermédiaire.
Je peux passer de intermédiaire à maximisé et inversé, à minimisé et inversé, et maximisé -> minimisé -> intermédiaire. Mais pas entre 2 tailles intermédiaires différentes.
Donc, si j'ai choisi une taille intermédiaire, et que c'est un peu de travail pour ajuster ma fenêtre, et que quelqu'un choisit une taille différente, mon travail est perdu, et je suis très en colère sur la page, ce qui me force à travailler plus.