Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczna wysokość iframe
Forum PHP.pl > Forum > Po stronie przeglądarki
MitS
Witam!
Potrzebny jest skrypt w php (lub czymś innym), który ustawiałby automatycznie wysokość iframe tak aby strona automatycznie dopasowywała się do strony wczytywanej w iframe .
Strona wczytywana w iframe pochodzi z innego serwer jest obca!
I niestety nie umiem php sad.gif a chcem jedynie zrobić jeden prosty serwis, lecz nie moge bo nie wiem jak wykonać mój problem opisany powyżej. Jeżeli znajdzie się dobry człowiek który mi w tym pomoże będe wdzieczny (mogą być gotowe skrypty z innych stron, odnośniki itp).

Pozdrawiam
mike
Cytat(MitS @ 2005-10-20 08:10:05)
I niestety nie umiem php sad.gif

No właśnie widzę smile.gif
php działa po stronie serwera i nie da się takiego efektu w nim osiągnąć.
W ogóle php jako tako nie ma żadnego związku z HTML'em.

Przenoszę na "Po stronie przeglądarki"
tmk
coś możnaby kombinować:
Na początku <BODY>
Kod
<script LANGUAGE="JavaScript" >
    Wys=screen.height;
    document.write("<style TYPE=\"text/css\">.wys_frame {height: "+(0.5*Wys)+"px;}</style>");
</script>


a potem wstawić ta klasę class="wys_frame" dla ramki
Sky_walker
Jak ustawić automatycznie wysokość Iframe zależnie od wysokości tekstu w niej się znajdującego?

Tworzysz plik resizeIframe.js
  1. function resizeIframe(x){try{x.scrolling='no',x.style.height=x.contentWindow.document.body.scrollHeight+30+'px'}catch(x){}}

i w pliku index.html (w nim są Iframe'y):
w head:
  1. <script type="text/javascript" src="resizeIframe.js"></script>

w body dodajemy iframe:
  1. <iframe src="index_iframe.html" onload="resizeIframe(this)" frameborder="0"></iframe>

Genialne i proste zarazem.
zientek18
Witam

Bardzo ładnie to opisałeś Sky_walker. Wszystko działa poprawnie, ale mam pewien problemik, ponieważ na mojej stronie mam:
Z lewej strony MENU z prawej ZAWARTOSC STRONY i używam tego skryptu dla obu <iframe>, ale gdy menu jest któtsze niż zawartość strony (lub na odwrót) jest ono na srodku tabeli co wyglana bardzo nieestetycznie, strona działa tylko poprawnie gdy dla obu tych stron jest to samo HEIGHT (ta sama wysokosc) stad takie moje pytanko:

Czy ktoś wie jak przerobić ten skrypt, aby dla dwóch innych <iframe> była przypisywana automatyczna wysokosc tak jak dotychczas plus pobranie najwyzszej wysokosci ramki jednej z dwoch i przypisanie ich obu takiej samej wysokosci (najwiekszej)<iframe>

Mam nadzieje ze mnie zrozumieliscie, bardzo bede wdzieczny za odpowiedz i juz z gory dziekuje!
Pozdrawiam serdecznie i zycze milego dnia!

Już mam, valign="top" w <td> załatwiło sprawe, ale jestem happy, jak chcesz na kogos liczyc to licz na siebie wstydnis.gif
Mozna zamknac temat winksmiley.jpg
artideejay
Temat stary ale natknąłem się na niego więc odpisuje, być może się komuś przyda
Jeśli chcemy uzyskać automatyczną iframe zmieniająca wysokość w zależności od ładowanej w niej zawartości możemy zamiast używać skryptów, zrobić to prosto modyfikując ustawienia iframe

Tworzymy 2 dokumenty - pierwszy nazwę "ramka1.htm" drugi "ramka2.htm"
W ramce1 ładować się będzie ramka2, a w ramce2 ładować się będą strony z odnośnikami
_self
Strony nie musza być na tym samym serwerze, może być to jakakolwiek strona z internetu
Ramka1 jest naszym głównym dokumentem i ona ukazuje cały efekt "auto iframe"

Kod:

Dokument "ramka1":

  1. <title>ramka1</title>
  2. </head>
  3. <body style="overflow:hidden">
  4. <p>
  5. <iframe name="I1" marginwidth="1" marginheight="0" height="98%" width="101%" scrolling="no" align="middle" border="0" frameborder="0" allowtransparency="true" src="ramka2.htm">
  6. Twoja przeglądarka nie obsługuje ramek wbudowanych lub jest obecnie skonfigurowana tak, aby nie wyświetlać ramek wbudowanych.
  7. </iframe></p>
  8. </body>


Drugi dokument "ramka2.htm":

  1. <title>ramka2</title>
  2. </head>
  3. <body style="background-color: transparent;" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
  4. <p>
  5. <iframe name="I1" marginwidth="1" marginheight="0" height="100%" width="100%" border="0" frameborder="0" allowtransparency="true" src="http://adres_twojej_strony" align="middle">
  6. Twoja przeglądarka nie obsługuje ramek wbudowanych lub jest obecnie skonfigurowana tak, aby nie wyświetlać ramek wbudowanych.
  7. </iframe></p>
  8. </body>



w iframe w miejsce adres_twojej_strony - oczywiście wpisujemy adres naszej strony internetowej która będzie się otwierać w ramce
Można tu wpisać adres strony z innego serwera jak również adres strony z naszego serwera, np index.htm
Działa pod każdą przegladarka
Ramki są ustawione tak aby były przeźroczyste.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.