Avatar billede mstorgaard Praktikant
02. januar 2006 - 02:03 Der er 21 kommentarer og
1 løsning

Iframe kan godt udvide sig, men vil ikke blive mindre

Jeg har siden http://www.schnellboote.dk

Efter så jeg har fulgt instruktionerne fra dette spørgsmål http://eksperten.dk/spm/660558 og ændret lidt på sidens opstilling er der nu er problem med iFrame.
Det er meningen at iFramen automatisk skal vælge samme størrelse, som siderne den åbner. Den kan sagtens udvide sig i Firefox, den kan bare ikke gøres mindre igen, når man vælger et vindue med mindre indhold.

Jeg bruger det her script, som jeg har fået fra roenving:
<script language="JavaScript"  type="text/javascript">
window.onload = function(){
  var t=document.body.scrollHeight;
  if(parent!=window)parent.document.getElementById('Main').style.height=t+22+'px';
}
</script>
<iframe src="Forside.php" name="Main" id="Main" width="480px" frameborder="0" scrolling="no"></iframe>

Nogen der har forslag til hvad problemet kan være?
Avatar billede roenving Novice
02. januar 2006 - 12:00 #1
Prøv at lave iframen meget lille, hver gang du åbner et nyt dokument, for hvis den har en størrelse, vil dokumentet, der åbner i det, mindst have den højde !-)
Avatar billede mstorgaard Praktikant
02. januar 2006 - 14:42 #2
Hvordan gør jeg sådan at den altid åbner i en lille størrelse?
Avatar billede roenving Novice
02. januar 2006 - 14:49 #3
Laver et script, som altid aktiveres, når der lægges en ny side i iframen !-)

F.eks.

function linkTil(url){
  document.getElementById("Main").style.height = 10px;
  window.Main.location.href = url;
}

-- og så links sådan:

<a href="/side2" onclick="linkTil(this.href);return false;">Side 2</a>
Avatar billede mstorgaard Praktikant
03. januar 2006 - 19:26 #4
Jeg kan ikke få den til at virke :S
Avatar billede roenving Novice
03. januar 2006 - 19:28 #5
<a href="java script:linkTil('Formaal.htm')" onmouseover="image1.src='images/formaal2.GIF';" onmouseout="image1.src='images/formaal.GIF';" target="Main">
Avatar billede mstorgaard Praktikant
03. januar 2006 - 19:48 #6
Og hvor skal
function linkTil(url){
  document.getElementById("Main").style.height = 10px;
  window.Main.location.href = url;
}
så indsættes?
Avatar billede roenving Novice
03. januar 2006 - 19:57 #7
På hovedsiden, så der e5r adgang til den fra links !-)
Avatar billede mstorgaard Praktikant
03. januar 2006 - 20:12 #8
Nu har jeg indsat scriptet på hovedsiden og indsat javascript-linket i linket til Formål, men nu kan den ikke engang åbne siden...
Avatar billede roenving Novice
03. januar 2006 - 20:16 #9
Gaab, der mangler gåseøjne om værdien:

  document.getElementById("Main").style.height = "10px";
Avatar billede mstorgaard Praktikant
03. januar 2006 - 20:28 #10
Det var ikke det eneste problem, for det funker stadig ikke :)
Avatar billede roenving Novice
03. januar 2006 - 20:42 #11
Hrm, tjah ...

<script language="JavaScript" type="text/javascript">
function linkTil(url){
  document.getElementById("IFRAMEID").style.height = "10px";
  document.getElementById("IFRAMEID").src = url;
}
</script>
<body>
      <a href="iframe.html" onclick="linkTil(this.href);return false;">ljkhklhjk</a>

<iframe id="IFRAMEID" name="IFRAMEID" style="width:100px;height:100px;"></iframe>
</body>
Avatar billede roenving Novice
03. januar 2006 - 20:43 #12
-- men det har såvidt jeg kan gennemskue ikke noget med brug af src-tingen, men måske med target-tingen og return false i linket !-)
Avatar billede mstorgaard Praktikant
06. januar 2006 - 14:08 #13
Så virker det sgu :)

Smider du lige et svar?
Avatar billede roenving Novice
07. januar 2006 - 12:22 #14
Velbekomme '-)
Avatar billede mstorgaard Praktikant
08. januar 2006 - 13:47 #15
Forresten hvis du gider kan du så ikke lige lave et script der sætter en besked på mens den lille frame er åben? For hvis siderne er lidt længere tid om at åbne står den på den 10px høje iframe i et stykke tid...
Avatar billede roenving Novice
09. januar 2006 - 16:44 #16
<script language="JavaScript" type="text/javascript">
function linkTil(url){
  var ifr = document.getElementById("Main")
  ifr.style.height = "10px";
  ifr.src = url;
  var msg = document.getElementById("iframeMsg");
  msg.firstChild.nodeValue = "Loading " + url + " ...";
  msg.style.display = "block";
}
</script>
<body>
      <a href="iframe.html" onclick="linkTil(this.href);return false;">ljkhklhjk</a>

<div id="iframeMsg" style="display:none;">&nbsp;</div>
<iframe id="Main" name="Main" style="width:100px;height:100px;"></iframe>
</body>

-- og så skal onload-funktionen i dokumenterne laves sådan:

<script language="JavaScript"  type="text/javascript">
window.onload = function(){
  var t=document.body.scrollHeight;
  if(parent!=window){
  parent.document.getElementById('Main').style.height=t+22+'px';
  parent.document.getElementById("iframeMsg").style.display = "none";
}
</script>
Avatar billede roenving Novice
09. januar 2006 - 16:44 #17
-- og tak for point ;~}
Avatar billede mstorgaard Praktikant
09. januar 2006 - 16:50 #18
Beskeden kommer, men siden tilpasser sig ikke :-(
Avatar billede roenving Novice
09. januar 2006 - 18:15 #19
Får du nogen fejl ?-)
Avatar billede mstorgaard Praktikant
09. januar 2006 - 18:47 #20
Den åbner den lille iframe, skriver Loading URL ... i toppen og kommer ikke videre...
Avatar billede roenving Novice
10. januar 2006 - 00:16 #21
Har du et link til dit forsøg ?-)
Avatar billede mstorgaard Praktikant
10. januar 2006 - 07:14 #22
Ikke lige nu, jeg har fjernet det igen, da siden helst skal køre uden for mange fejl :)

Men jeg får lige lavet en eksempel side på et tidspunkt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester