Avatar billede magnusn Nybegynder
16. august 2004 - 08:45 Der er 11 kommentarer og
1 løsning

maksimal bredde for iFrames?

som titlen lyder så vil jeg gerne vide om der skulle være mulighed for at sætte en iFrame til at have eksempelvis bredden 90% og samtidig have en maksimal bredde for den så den ikke bliver breddere når den når et vidst punkt?
Avatar billede roenving Novice
16. august 2004 - 10:42 #1
Næh ...

Tjah, joeh, man kan jo regulere det med javascript, hvis den bliver for bred på den ene eller anden måde ...

<script type="text/javascript">
function checkIfrWidth(ifr){
  if(ifr.offsetWidth>900)ifr.style.width = '900px';
}
</script>

<iframe src="" style="width:90%" onload="checkIfrWidth(this)"></ifr>

-- absolut utestet !-)
Avatar billede magnusn Nybegynder
16. august 2004 - 12:30 #2
det lyder nu meget rimeligt..
er ikke inde i Javascript rigtig, så det må jeg lige læse lidt op på når jeg kommer hjem :)
-hvordan er det lige at point tildeles? :S
Avatar billede roenving Novice
16. august 2004 - 12:31 #3
Ved at jeg svarer !-)

-- velbekomme '-)
Avatar billede magnusn Nybegynder
17. august 2004 - 00:24 #4
hmm det lader ikke til at jeg kan bikse noget sammen hvor at hvis brugeren udvider browseren så meget at iframe'en bliver over 958px bred, så går den ikke længere :(

meningen er at jeg skal have en iFrame som normalt er 90% i bredde, men så skal den så stoppe med at udvide sig når den når mere end 958%..
nogen der forstår mig?
den skal helst være dynamisk, men det ved jeg ikke om det script også var?
er ret ny indenfor javascript :/
Avatar billede roenving Novice
17. august 2004 - 02:13 #5
Nu er det faktisk sjældent at brugere i virkeligheden udvider browser-vinduer, men en dynamisk udgave:

<script type="text/javascript">
var ifra = null;
function checkIfrWidth(ifr){
  ifra = ifr;
  if(ifr.offsetWidth>958)ifr.style.width = '958px';
  window.onresize = function(){if(ifra.offsetWidth>958)ifra.style.width = '958px';}
}
</script>

<iframe src="" style="width:90%" onload="checkIfrWidth(this)"></ifr>
Avatar billede magnusn Nybegynder
17. august 2004 - 16:11 #6
det kan godt være at scriptet funger, men vil lige have nogle til klart..
hvad bruges offsetWidth til? jeg har nemlig brugt width før :O
og hvor sætter du ' rundt om 958px istedet for ""?
hvad bruges "this" til? er det en variable? har set den i javascript relaterede ting før, men har ikke fundet noget info om den før :/
og hvad skulle der til hvis jeg nu ville have scriptet i en .js fil for sig selv så det var muligt at kalde funktionen uden at have den stående i HTML filen?
det er muligt at give point til mere end en person ikke?

på forhånd tak
Avatar billede roenving Novice
17. august 2004 - 16:23 #7
width som attribut på bla. iframes er deprecated, dvs. dømt til at blive skrottet om lidt ...

-- ' og "" har fuldstændig samme betydning i javascript, mens nogle af de server-side scripting-sprog har forskel, så ofte bruger jeg apostrofferne, så det kan puttes ind i en asp- eller php-streng eller i en event på et tag uden problemer !-)

this refererer til det aktuelle objekt, så i en eventhandler refererer det til det html-objekt, hvor eventen forekommer ...

-- i en .js-fil må der ikke være html-kode, så <script></script> skal fjernes, og kun det som står imellem skal i filen, _intet_ andet skal ændres ...

Jo, hvis mere end een har svaret i et spørgsmål, kan point fordeles, automatisk, hvis man markerer flere navne i boksen til venstre, eller manuelt, hvis man trykker på avanceret-linket !o]
Avatar billede magnusn Nybegynder
17. august 2004 - 16:50 #8
og når jeg importerer min .js fil så skal <scrip src=""> placeres indeni <body> eller <body>? :)
Avatar billede magnusn Nybegynder
17. august 2004 - 17:07 #9
en anden ting..
hvad er logiken i de 2 variable? jeg bliver ret let forvirret af sådan ting så håber du kan forklare :$
Avatar billede magnusn Nybegynder
17. august 2004 - 17:17 #10
okay det gik op for mig..
..du blev nød til at erklære variablen ifra udenfor funktionen for at den skal være global?
nå, men bare glem det, heh
Avatar billede magnusn Nybegynder
17. august 2004 - 17:56 #11
hmm..
nu der bare et sidste problem :(
-jeg mangler en løsning på hvordan iFramen kan blive 90% igen hvis browserens bredde bliver mindre end 958px igen :/
Avatar billede roenving Novice
17. august 2004 - 22:24 #12
Det med variablerne skyldes, at 'ifr' repræsenterer en overført parameter, og den vil selvfølgelig kun være levende i det 'øjeblik' hvor den overføres, 'ifra' har du helt rigtigt fat i, at den er erklæret for at være global ...

-- placeringen af script-tagget til en ekstern fil, skal være indenfor html-kodens rækkevidde, altså imellem <html> og </html>, dog har jeg ikke hørt om tilfælde, hvor det gav fejl, at det var placeret udenfor !-)

-- og den var værre med at den maksimalt måtte være 90% ...

Hrm, hrm, tjah, tja, bom, bom ...

<script type="text/javascript">
var ifra = null;
function checkIfrWidth(ifr){
  ifra = ifr;
  var maxWidth = 0.9*document.body.offsetWidth;
  if(ifr.offsetWidth>958)ifr.style.width = '958px';
  if(ifr.offsetWidth>maxWidth)ifr.style.width = '90%';
  window.onresize = function(){checkIfrWidth(ifra);}
}
</script>

-- håber det dækker dine behov ...

-- og tak for point ;~}
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