Toon posts:

[JS] Layer resize onder IE én Netscape

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik heb een stukje code gemaakt wat het formaat van een (in een frame) geïntegreerde <DIV> layer aanpast aan de hand van het formaat van het desbetreffende frame in het browserwindow. Nu werkt dit in IE, maar weet ik niet zeker of ik de code voor Netscape goed heb toegepast. Op de search kon ik niet precies vinden wat ik wilde.

Het gaat om de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="JavaScript"><!--
var height, width;

if(document.layers){
    // Netscape 4;
    width = innerWidth;
    height = innerheight;

    tekstlayer.style.height=height-18;
    tekstlayer.style.width=width-18;
}

if(document.all){
    // Internet Explorer en Netscape 6
    height = document.body.offsetHeight;
    width =document.body.offsetWidth;

    tekstlayer.style.height=height-18;
    tekstlayer.style.width=width-18;
}
//-->
</script>


"tekstlayer" is hier de naam van de layer. En btw, kan ik dezelfde variabelen bij offsetHeight en innerHeight verwachten?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

je kunt iig beter window.innerWidth of self.innerWidth gebruiken en innerheight moet met een kapitaal: innerHeight


Ik dacht dat het vervormen van layers in netscape4.x niet zo eenvoudig was..

ff zoeken.. tsjek deze page voor meer info over NN4.x layers.

Daarnaast laat ik ff buiten beschouwing dat je ook nog de nodige energie moet stopen in het geschikt maken voor nieuwe browsers die DOM ondersteunen (IE5+, Moz, NN6/7,enz) waarbij je 'document.getElementById' gebruikt ipv 'document.layers' of 'document.all'

www.jurgroessen.nl


Verwijderd

Verwijderd schreef op 31 oktober 2002 @ 22:25:
[...]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="JavaScript"><!--
var height, width;

if(document.layers){
    // Netscape 4;
    width = innerWidth;
    height = innerheight;

    tekstlayer.style.height=height-18;
    tekstlayer.style.width=width-18;
}

if(document.all){
    // Internet Explorer en Netscape 6
    height = document.body.offsetHeight;
    width =document.body.offsetWidth;

    tekstlayer.style.height=height-18;
    tekstlayer.style.width=width-18;
}
//-->
</script>
1) Whatever happened to GetElementById()?
2) Ik zie in je code dingen als tekstlayer.style.width = width - 18;
Mag ik je dan vragen: 18 wat? meters? kilometers? pixels? points?

en als je nu denkt huh? waar lult die gast over :? denk dan maar dat ik internet explorer ben die jouw script aan het uitvoeren is en niet kan bedenken van welke eenheid jij er 18 wilt hebben :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:51

crisp

Devver

Pixelated

In NS6 gaat dit sowieso niet werken; die ondersteund namelijk document.all niet.
Dit zal waarschijnlijk wel werken in alle moderne browsers; voor NS4 zie linkje van Hangloozz:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script type="text/javascript">
var height, width;

if (document.layers) {

  // je NS4 shit

} else {

  // moderne browsers IE4+ of NS6+/Moz
  height = window.innerHeight || document.body.offsetHeight;
  width = window.innerWidth || document.body.offsetWidth;

  if (document.getElementById) {

    // IE5+ en NS6+/Moz
    document.getElementById('tekstlayer').style.height = (height-18) + 'px';
    document.getElementById('tekstlayer').style.width = (width-18) + 'px';

  } else if (document.all) {

    // IE4
    document.all['tekstlayer'].style.height = (height-18) + 'px';
    document.all['tekstlayer'].style.width = (width-18) + 'px';

}
</script>

Intentionally left blank


Verwijderd

Topicstarter
Okay, bedankt voor de hulpzame reacties! Ik zal mijn code aan de hand hiervan eens wat aanpassen...