php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Popupgröße automatisch anpassen


 
strauberry
06-04-2005, 13:12 
 
Hallo zusammen,

ich suche ein JS, das die Größe eines Popups automatisch so anpasst, dass alles vom Content zu sehen ist.

Hab bisher folgendes:


<script language="JavaScript">

function RefreshSize()
{

if(document.all)
var int_HoeheInhalt = document.all.bodyElement.offsetHeight;
else
var int_HoeheInhalt = window.innerHeight ;

if(document.all)
var int_BreiteInhalt = document.all.bodyElement.offsetWidth;
else
var int_BreiteInhalt = window.innerWidth ;

window.resizeTo(int_BreiteInhalt+10, int_HoeheInhalt+10);
}

</script>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="RefreshSize()">
<div id="bodyElement">
<? echo $txt_Content; ?>
</div>
</body>
</html>

Nur irgendwie klappt das nicht. Die Größe verändert sich zwar, es wird aber trotzdem nicht alles angezeigt, eher weggeschnitten :)

DANKE!!
strauberry

 
wahsaga
06-04-2005, 13:31 
 
Original geschrieben von strauberry
var int_HoeheInhalt = window.innerHeight ;
ist doch in dem zusammenhang ziemlicher unfug - weil es eben die innenmaße des fensters enthält, und nicht die "höhe des inhaltes" o.ä.

also fragst du damit auf genau das ab, was du eigentlich anpassen wolltest.

 
strauberry
06-04-2005, 13:35 
 
Ok, das ist die Netscape Zeile :) Die IE-Zeile mit document.all funktioniert ja auch nicht :(

 
wahsaga
06-04-2005, 13:45 
 
debugausgaben ...?

 
strauberry
06-04-2005, 13:48 
 
Naja, das Nicht-Funktionieren drückt sich so aus, dass sich entweder an der Fenstergröße gar nichts tut oder aber nicht der gesamte Content angezeigt wird... Fehlermeldungen gibt es aber keine

Auf der Seite wird ein Bild und darunter ein Textlink angezeigt.

 
Kropff
06-04-2005, 13:55 
 
ist doch klar innerheight bzw. offsetHeight beziehen sich die größe des anzeigenbereichs eines fensters. du reduzierst dann das gesamte fenster
auf die größe des vormaligen anzeigenbereichs. hau mal mehrmals auf f5, dann müßte das fenster jedesmal kleiner werden.

gruß
peter

 
strauberry
06-04-2005, 13:57 
 
Ne, die GRöße bleibt immer gleich...

Wie kann ich denn die notwendige Größe auslesen? Vielleicht indem ich es in eine Tabelle einbaue und dann die Tabellenbreite auslese?

 
Kropff
06-04-2005, 15:07 
 
schau mal hier (http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=image) nach, ich würde die größe des bildes abfragen und noch ein wenig draufschlagen.

gruss
peter

 
strauberry
06-04-2005, 15:13 
 
Nur ein Bild wäre nicht das Problem :)

Ich habe aber noch Text usw. da drin und das soll auch alles mit berücksichtigt werden

 
Kropff
06-04-2005, 16:05 
 
Ich habe aber noch Text usw. da drin und das soll auch alles mit berücksichtigt werden
dann mußt du wohl die größe beim window.open jedesmal individuell anpassen.

gruß
peter

 
strauberry
07-04-2005, 17:09 
 
Hallo,

für die Breite habe ich jetzt so halb hinbekommen, vielleicht hat jemand den entscheidenden Hinweis :)



function RefreshSize()
{
if(document.all)
var int_HoeheInhalt = document.all.ContentTable.offsetHeight;
//else
//var int_HoeheInhalt = window.innerHeight ;

if(document.all)
var int_BreiteInhalt = document.all.ContentTable.offsetWidth;
//else
//var int_BreiteInhalt = window.innerWidth ;

//if(
//var Int_BreiteAddieren = 15;

window.resizeTo(int_BreiteInhalt+15, int_HoeheInhalt+15);
}

<table id="ContentTable" border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td>
<? echo $txt_Content; ?>
</td></tr></table>


Die Breite funktioniert... die Höhe eigentlich auch. Ich sage eigentlich WEIL in der Tabelle ist ein Bild und dann ein <br> + Text. Das Bild wird komplett angezeigt, also das Popup geht auf die Größe des Bildes. Der Text wird aber nicht angezeigt...

Komisch :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:18 Uhr.