Popup ablak precíz átméretezése

A napokban kényszerültem rá, hogy valamilyen módon egy browserből nyitott popup ablakot pixelprecízen átméretezzek különböző eseményekre. Lényegében a benne található tartalom JavaScript segítségével változik és nyilván nem túl praktikus scollbart kirakni.

Szóval a hatás elérésére cross-browser módon a következőt találtam ki, amelynek az ötletét egy blogbejegyzésben szedtem fel (sajnos már nem emlékszem melyikben):

  1. function resizeSafely(toWidth, toHeight)
  2. {
  3. // First we determine reliably the inner size of the window
  4. var innerWidth = 0, innerHeight = 0;
  5.  
  6. if( typeof( window.innerWidth ) == 'number' ) {
  7. // Non-IE
  8. innerWidth = window.innerWidth;
  9. innerHeight = window.innerHeight;
  10. }
  11. else if( document.documentElement &&
  12. ( document.documentElement.clientWidth ||
  13. document.documentElement.clientHeight ) )
  14. {
  15. //IE 6+ in 'standards compliant mode'
  16. innerWidth = document.documentElement.clientWidth;
  17. innerHeight = document.documentElement.clientHeight;
  18. } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
  19. //IE 4 compatible
  20. innerWidth = document.body.clientWidth;
  21. innerHeight = document.body.clientHeight;
  22. }
  23.  
  24. // Now we resize by the difference of the actual inner size
  25. // and the desired size
  26. window.resizeBy(toWidth - innerWidth, toHeight - innerHeight);
  27.  
  28. // We can even move the window to accomodate users but is not necessary
  29. window.moveBy(0, -1*(toHeight - innerHeight));
  30. }

Lényegében a trükk az hogy először megállapítjuk az inner height és inner width értékeket és utána kivontjuk a kívánt értékekből a az aktuálisakat. Így elkerülhető az a probléma hogy IE alatt nem egészen meghatározható hogy pontosan mekkora is a browser chrome (tehát a böngésző kerete, esetleg scrollbar mérete, stb...).

Próbáljátok ki és ha van észrevétel, bug, jöhet kommentbe!

innerWidth

Helló!
Nekem egy olyan problémám lenne, hogy a megnyitott ablak méretét kéne valahonnan előkerítenem IE alatt. Sajna ez nekem lehetetlen küldetésnek tűnik, de azért remélem van megoldása. Egy úszó popup ablakot szeretnék tenni az oldalamra középre, ez ff alatt működik is, a szkript szépen lekéri az innerWidth és innerHeight értékeket, majd megfelezi és úgy ki is teszi a popupot, viszont IE alatt nem kezd vele semmit ( http://www.quirksmode.org/dom/w3c_cssom.html ) Erre esetleg van megoldásod???