Avatar billede the_unseen Nybegynder
17. maj 2003 - 21:33 Der er 5 kommentarer og
1 løsning

Resolution change medfører redirect

Jeg har et website der opererer i tre forskellige versioner alt efter skærmstørrelsen på den computer de skal vises på. De tre størrelser er:

800x600 (750x450)
1024x768 (990x580)
1280x1024 (990x580 med centrering og indramning)

Se nu er fidusen jo at brugeren bliver viderestillet automatisk til den version der passer bedst til vedkommendes skærmstørrelse - hvorefter vinduet bliver udvidet til at fylde hele brugerens skærmbillede. Det fungerer umiddelbart fint.

Men nu er det jo sådan, at folk der arbejder i høje opløsninger (1280x1024 og derover) ofte vil foretrække at have browservinduer der ikke fylder hele skærmen og derfor vil de resize vinduet så det passer ind i deres arbejdsvaner.

Derfor har jeg brug for et script som reagerer hvis brugeren resizer browservinduet indenfor nogle fastsatte pixelstørrelser.

F.eks. hvis nu jeg har loaded mit site og er blevet viderestillet til 1280x1024 versionen - derefter resizer jeg så selv vinduet til f.eks. 900x600px. Scriptet skulle så gerne registrere dette og skifte siden ud med den version der passer dertil (I dette eksempel 800x600).

Kan dette løses - og hvis det kan så lad mig få en guide der er nogenlunde forståelig og som begrænser sig til JavaScript og html.

Husk at løsninger skal virke i alle almindelige browsere.


På forhånd tak!

-/-
The Unseen
Avatar billede backside Nybegynder
17. maj 2003 - 22:12 #1
Din overskrift kan godt være lidt misvisende.
Vinduesstørrelse og skærmopløsning er jo 2 meget forskellige ting.

Tvivler på at det kan lade sig gøre da siden ER hentet når du resizer vinduet.
....hvis altså jeg har forstået det ret.
Avatar billede grunken Nybegynder
17. maj 2003 - 22:46 #2
Jow, det kan godt lade sig gøre : har lavet et hurtigt eksempel!

nedenstående eksempel henter bare en ny fil når vinduets størrelse ændres!

er det det du vil have ?

<html>
<head>
<SCRIPT language="javascript">
function hest(){

if (navigator.appName == "Microsoft Internet Explorer") {
    bredde = document.body.offsetWidth;
  }
  else {
    bredde = window.innerWidth;
  }

  var res1
  if (bredde < 990){
    res1 = 800}
  if (bredde >= 990){
    res1 = 1024} 
 
  if (res1!=res) {
    location.replace(res1+'.html')
  }

}
</SCRIPT>
</head>

<body onresize="hest();">
  ALT dit normale kode Kommer Her
</body>

<SCRIPT language="javascript">
var b

if (navigator.appName == "Microsoft Internet Explorer") {
    b = document.body.offsetWidth;
  }
  else {
    b = window.innerWidth;
  }
 
  var res
 
  if (b < 990){
    res = 800}
  if (b >= 990){
    res = 1024}
</SCRIPT>
</html>

Du kan bare tilføje så mange opløsninger som du vil have :)

og til sidt vil det nok være smart at lægge ovenstående i .js filer, da det skal bruges på samtlige sider!

-grunken
Avatar billede the_unseen Nybegynder
17. maj 2003 - 22:56 #3
> backside

Helt i orden du synes min overskrift var misvisende: Kan du finde på en bedre??? :-)

> grunken

Jeg er på vej i seng nu - det ser umiddelbart lovende ud, men hvordan lægger jeg det ordenligt i js-filer? Og hvordan styrer jeg så at hvis jeg nu er på /1024/projekter.html og resizer skal den redirecte til .../800/projekter.html - og naturligvis tilsvarende på profil.html og omvendt????


The Unseen
-/-
Avatar billede grunken Nybegynder
17. maj 2003 - 23:21 #4
<html>
<head>
<SCRIPT language="javascript">
function hest(){

if (navigator.appName == "Microsoft Internet Explorer") {
    bredde = document.body.offsetWidth;
  }
  else {
    bredde = window.innerWidth;
  }

  var res1
  if (bredde < 990){
    res1 = 800}
  if (bredde >= 990){
    res1 = 1024} 
 
  if (res1!=res) {
    location.replace('../'+res1+'/projekter.html');
  }

}
</SCRIPT>
</head>

<body onresize="hest();">
  ALT dit normale kode Kommer Her
</body>

<SCRIPT language="javascript">
var b

if (navigator.appName == "Microsoft Internet Explorer") {
    b = document.body.offsetWidth;
  }
  else {
    b = window.innerWidth;
  }
 
  var res
 
  if (b < 990){
    res = 800}
  if (b >= 990){
    res = 1024}
</SCRIPT>
</html>

i ovenstående kan du selv ændre filnavnene i scriptet, men når det drejer sig om en masse forskellige filnavne, kan det ikke betale sig at smide dem i js filer, så skal du bare paste koden ind på de sider hvor du skal bruge det, og derefter ændre filnavnet tilsvarende i sriptet

-grunken
Avatar billede the_unseen Nybegynder
27. maj 2003 - 22:11 #5
> Grunken:

Skriv et svar og få point!


Mvh.
The Unseen
Avatar billede the_unseen Nybegynder
15. december 2003 - 01:52 #6
Okay så...
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