2010-09-09 3 views
0

J'essaye de redimensionner la fenêtre dans IE. Pour cela, je me sersresizeBy lancer "L'accès est refusé" exception dans IE

window.resizeBy(width - document.documentElement.clientWidth, height - document.documentElement.clientHeight); 

Cependant, parfois cela ne fonctionne pas avec un « accès refusé » exception. La façon dont je traitais ceci était simplement d'utiliser

setTimeout('resizeWindow(' + width + ', ' + height + ')', 200); 

si l'exception se produit pour réessayer un peu plus tard. Le problème est qu'il provoque maintenant une condition de concurrence si la fenêtre doit être redimensionnée plusieurs fois en succession rapide.

Est-ce que quelqu'un sait pourquoi l'exception "Accès refusé" peut être levée et comment l'éviter?

+0

* "la fenêtre doit être redimensionnée plusieurs fois rapidement" * - o_O Pourquoi une telle chose serait-elle nécessaire? Pour ma part, je serais énormément énervé si une application web que j'utilise l'a fait ... – Tomalak

+0

@Tomalak Je serais énervé si une application web redimensionnait mon navigateur même une fois ... –

+0

@Rowland: S'il y avait une fenêtre popup pour une raison quelconque, j'accepterais un redimensionnement ponctuel aux dimensions appropriées. (Si les fenêtres contextuelles sont bonnes ou nécessaires, c'est une autre discussion.) Tous les autres cas m'agaceraient aussi instantanément. – Tomalak

Répondre

1

Le redimensionnement se produit lorsque l'utilisateur clique sur un bouton. Sur mousedown sur le bouton, un événement est déclenché, ce qui à son tour redimensionne la fenêtre. Si l'utilisateur maintenait le bouton enfoncé pendant le redimensionnement, IE lève l'exception car elle ne permet pas de redimensionner les fenêtres tant que le bouton est enfoncé (probablement pour des raisons d'ergonomie). Un basculement rapide du bouton augmentait la probabilité que le bouton de la souris soit enfoncé pendant qu'il essayait de redimensionner la fenêtre.

+0

Par tout changement comment le réparer? – Peter

Questions connexes