Toon posts:

[javascript]pagina aanpassen naar resolutie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een prachtige nieuwe pagina aan het ontwikkelen voor ons bedrijf. Uiteraard moet het een pagina met dynamische content worden, dus ik heb een Perl een script gemaakt wat losse htmlbestanden leest en aan de hand daarvan een pagina uitspuugt. Hij houdt hierbij rekening met het browsertype (in Perl eenvoudig op te vragen met ENV("HTTP_USER_AGENT")).

Nu wil ik eigenlijk ook dat bv het background-plaatje wordt aangepast op de resolutie die de gebruiker heeft. Ik heb niks kunnen vinden in Perl wat dit kan uitvragen, dus was mijn idee om dit in Javascript op te lossen.
En dan als volgt: gebruiker vraagt index.html op, in index.html staat een verwijzing naar het script (<meta http-equiv="refresh" content="1; url=/webpage/bin/blabla.cgi">). Vervolgens was mijn idee om dan met JavaScript de resolutie uit te vragen(met screen.availWidth) en die achter de verwijzing te plakken, dus bv. url=/webpage/bin/blabla.cgi?resolutie=1024x768.

Mijn probleem is nu dat ik niet weet of en hoe je JavaScript kunt laten werken tussen de <head> tags. Met document. write komt mijn info tussen de body-tags terecht, en dat wil ik typisch niet. Iemand die weet hoe ik dit het beste kan oplossen?

Voor de PHP-fanaten: nee, ik ga de pagina niet in PHP maken. :P

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

als je t wilt veranderen kan je ook gewoon
code:
1
<body onresize="veranderpagina()">
doen :)

maar vele zijn je voor geweest en ik geef je hoop dat zo`n project ooit afkomt. dan moet je met alles rekening houden en alles inscripten. is een boel werk :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Met document.write kun je ook die meta tag schrijven.

Houd je er wel rekening mee dar de resolutie niet altijd gelijk is aan de venstergrootte?

Verwijderd

Topicstarter
Verwijderd schreef op 12 september 2002 @ 16:04:
Met document.write kun je ook die meta tag schrijven.
Als ik die tag wegschrijf, komt ie weliswaar niet op het scherm te staan (omdat het een tag is) maar hij doet ook niet wat ie moet doen. Referren dus. Moet ik dan soms nog een argument meegeven ofzo?

Voor de volledigheid de code die ik nu tussen de script-tags heb staan:

code:
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
28
29
<script language="JavaScript">
<!--
if (navigator.appVersion == "Netscape") {
    var link = "bt=NN";
}
else {
    var link = "bt=IE";
}
switch(screen.availWidth) {
case 640:
    link += "&rt=1";
break;
case 800:
    link += "&rt=2";
break;
case 1024:
    link += "&rt=3";
break;
case 1280:
    link += "&rt=4";
break;
default:
    link += "&rt=5";
break;
}
document.write("<meta http-equiv='refresh' content='1;")
document.write(" url=/homepage/cgi-bin/home.cgi?" + link + ">'");
//-->
 </script>
Houd je er wel rekening mee dar de resolutie niet altijd gelijk is aan de venstergrootte?
Ja, screen.availWidth levert altijd een getal als 800, 1024 of 1280 op, dus een max. venstergrootte. En die is dus feitelijk gelijk aan de horizontale resolutie. :)

Verwijderd

En wie zegt dat het venster inderdaad gemaximaliseerd is?

Je kunt trouwens ook gewoon die meta tag vergeten en gewoon met javascript redirecten, dat is wel even handiger:

window.location.replace('/homepage/cgi-bin/home.cgi?' + ......);

Verwijderd

deze werkt iig wel, ik gebruik m zelf ook


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<SCRIPT LANGUAGE="JavaScript">
function redirectPage() {
var url800x600 = "800x600.html";
var url1024x768 = "1024x768.html";
var url1280x1024 = "1280x1024.html";
var url1280x960 = "1280x960.html";
if ((screen.width == 800) && (screen.height == 600)) 
window.location.href= url800x600;
else if ((screen.width == 1024) && (screen.height == 768))
window.location.href= url1024x768;
else if ((screen.width == 1280) && (screen.height == 960))
window.location.href= url1280x960;
else if ((screen.width == 1280) && (screen.height == 1024))
window.location.href= url1280x1024;
else window.location.href= url1024x768;
}
</script>

Verwijderd

Topicstarter
Verwijderd schreef op 12 september 2002 @ 16:33:
En wie zegt dat het venster inderdaad gemaximaliseerd is?

Je kunt trouwens ook gewoon die meta tag vergeten en gewoon met javascript redirecten, dat is wel even handiger:

window.location.replace('/homepage/cgi-bin/home.cgi?' + ......);
Sja, niemand natuurlijk, maar we kunnen nu eenmaal niet overal rekening meehouden... ;) Om onze pagina een beetje redelijk te kunnen gebruiken moet je of scrollen, of scherm gemaximaliseerd hebben. Niet dat ik een of andere absurde lay-out heb bedacht, lijkt qua opbouw wel een beetje op de frontpage van t.net.

Met window.location.replace gaat het prima, alleen irritant dat de back-button dan niet meer werkt. ;( Maar ja, kunt niet alles hebben.

Verwijderd

if (document.all)
{
height = document.body.offsetHeight;
width = document.body.offsetWidth;
}
else if (document.layers)
{
height = window.innerHeight;
width = window.innerWidth;
}

volgens mij kun je met deze code het daadwerkelijke formaat van de browser opvragen....
Pagina: 1