Forum Moderators: open

Message Too Old, No Replies

Auto resize a Popup

         

daisy1968

3:45 pm on Dec 5, 2005 (gmt 0)

10+ Year Member



Hi all,

I need the auto resize a popup according to it content...
The boby of the window is just plain HTML.
(there noway for me to know the size of the page in advance)

If somebody has any idea......
It would really by great!
Thanks!

webdude

6:31 pm on Dec 6, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



function getRefToDivMod( divID, oDoc ) {
if(!oDoc ) { oDoc = document; }
if( document.layers ) {
if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {
for( var x = 0, y;!y && x < oDoc.layers.length; x++ ) {
y = getRefToDivNest(divID,oDoc.layers[x].document); }
return y; } }
if( document.getElementById ) { return oDoc.getElementById(divID); }
if( document.all ) { return oDoc.all[divID]; }
return document[divID];
}

function openPerfectPopup(oW,oTitle,oContent) {
var x = window.open('','windowName','width=500,height=400,resizable=1');
if(!x ) { return true; }
x.document.open();
x.document.write('<html><head><title>'+oTitle+'<\/title><\/head><body>'+
(document.layers?('<layer left="0" top="0" width="'+oW+'" id="myID">')
:('<div style="position:absolute;left:0px;top:0px;display:table;width:'+oW+'px;" '+
'id="myID">'))+
oContent+(document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
x.document.close();
var oH = getRefToDivMod( 'myID', x.document ); if(!oH ) { return false; }
var oH = oH.clip? oH.clip.height : oH.offsetHeight; if(!oH ) { return false; }
x.resizeTo( oW + 200, oH + 200 );
var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;
if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }
else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }
else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }
if( window.opera &&!document.childNodes ) { myW += 16; }
x.resizeTo( oW + ( ( oW + 200 ) - myW ), oH + ( (oH + 200 ) - myH ) );
if( x.focus ) { x.focus(); }
return false;
}
The HTML contains:

<a href="noPop.html" onclick="return openPerfectPopup(300,'Title','Contents');">Click here
to test this</a>.

webdude

6:32 pm on Dec 6, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



By the way daisy1968, Welcome to WebmasterWorld!

daisy1968

8:30 am on Dec 7, 2005 (gmt 0)

10+ Year Member



Thanks for you're welcome and for the script!
It's working like a charm.
Now I just have to figure out how to get the information out of the database and in to the 'content' part but that will not be so very hard to do.

webdude

8:53 pm on Dec 7, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You're Welcome :-)