Avatar billede foxmulder58 Praktikant
02. juni 2005 - 01:31 Der er 22 kommentarer og
2 løsninger

Javascript der viderestiller til anden side?

Hej Eksperter,

Findes der et Javascript der kan viderstille brugeren videre til et hjemmeside design der passer til brugerens skærmstørrelse??



mvh
Mads


PS! vi gerne se koden med forklaring hvis det er muligt!
Avatar billede per1291 Nybegynder
02. juni 2005 - 02:12 #1
Du kan aflæse brugerens skærmstørrelse vha

w=self.screen.availWidth; h=self.screen.availHeight

(Du bør dog regne med, at browseren i nogle tilfælde inddrager et stykke af bredden til en oversigt.)

Og så kan du tage højde for skærmstørrelsen ved at lave betingede ændringer i dit script. Eller ved at dirigere videre med

self.location.href="..."

Hilsen  Per
Avatar billede thesurfer Nybegynder
02. juni 2005 - 02:50 #2
Noget i stil med:

<script type="text/JavaScript">
w=screen.availWidth;

if (w >= 1600) window.location.href = '1600.htm';
if (w >= 1400) window.location.href = '1400.htm';
if (w >= 1280) window.location.href = '1280.htm';
if (w >= 1024) window.location.href = '1024.htm';
if (w >= 800) window.location.href = '800.htm';
if (w >= 640) window.location.href = '640.htm';

</script>

/theSurfer
Avatar billede thesurfer Nybegynder
02. juni 2005 - 03:26 #3
Rettelse:

var w=screen.availWidth;

if (w >= 640) window.location.href = '640.htm';
if (w >= 800) window.location.href = '800.htm';
if (w >= 1024) window.location.href = '1024.htm';
if (w >= 1280) window.location.href = '1280.htm';
if (w >= 1400) window.location.href = '1400.htm';
if (w >= 1600) window.location.href = '1600.htm';

eller:

var w=screen.availWidth;
var side = "";

if (w >= 640) side = '640.htm';
if (w >= 800) side = '800.htm';
if (w >= 1024) side = '1024.htm';
if (w >= 1280) side = '1280.htm';
if (w >= 1400) side = '1400.htm';
if (w >= 1600) side = '1600.htm';

window.location.href = side;

/theSurfer
Avatar billede roenving Novice
03. juni 2005 - 00:48 #4
>>Strandløve

-- vil dine sidste udgaver ikke sørge for, at en bruger med 1600px tilgængelig skærmbredde bliver sendt til 640.htm ?-)
Avatar billede per1291 Nybegynder
03. juni 2005 - 03:07 #5
Strandløves første indlæg er i orden.
I andet indlæg er if'erne fejlagtigt byttet rundt i indlæggets første del.
Men udgaven med variablen "side" fungerer som den skal.

Det er for resten rigtig pænt.
Men du glemmer at tage højde for, at en del af bredden kan være optaget af en oversigt.

Hilsen  Per
Avatar billede roenving Novice
04. juni 2005 - 12:44 #6
-- og det er der desværre ingen muligheder for at aflæse ...
Avatar billede thesurfer Nybegynder
04. juni 2005 - 13:43 #7
Grunden til at skrev indlægget 02/06-2005 03:26:27, var at den første kode (02/06-2005 02:50:24) blev afviklet så hurtigt, at browseren (mener at det var Internet Explorer) ikke nåede at skifte side.. den loadede derfor "640.htm"

Ved at vende dem om, ville browseren nå at afvikle den sidste "rigtige"-if sætning..
Eksempel:
Hvis opløsningen er på 1280x1024, den prøve på at loade "1280.htm".. den vil dog også prøve på at afvikle resten af if-sætningerne.. men da kriteriet (om opløsningen) ikke opfyldes, vil window.location.href ikke blive afviklet..

Jeg har kigget på denne kode igen:

var w=screen.availWidth;
var side = "";

if (w >= 640) side = '640.htm';
if (w >= 800) side = '800.htm';
if (w >= 1024) side = '1024.htm';
if (w >= 1280) side = '1280.htm';
if (w >= 1400) side = '1400.htm';
if (w >= 1600) side = '1600.htm';

window.location.href = side;

..og mener at den er korrekt sat op.. "side" ændres, sålænge at if-sætningen opfyldes..

Dog har jeg nok valgt nogle forkerte værdier..

Her er et (samme) eksempel, med en Switch:

var w=screen.availWidth;

switch (true) {
case (w > 1280): side = "1600.htm"; break;
case (w > 1024): side = "1280.htm"; break;
case (w > 800): side = "1024.htm"; break;
case (w > 640): side = "800.htm"; break;
}

window.location.href=side;

Her er værdierne "mere korrekte", end dem i lidt længere op..

availWidth (og availHeight) skulle jo meget gerne være mindre, end selve opløsning.. med mindre at man køre fullscreen (også kaldet "chromeless windows"..?)

/theSurfer
Avatar billede roenving Novice
05. juni 2005 - 06:36 #8
availHeight og -Width svarer med den skærmstørrelse, som er til rådighed, når windows (eller andet styresystem !-) system-ting er fraregnet, altså f.eks. taskbaren (i bunden som standard !-)

Desuden bør man opbygge if-sætninger, som checker en tilstand af een værdi med else-sætninger, så det jeg vil anse som den rigtige måde at gøre det på, må være:

<script type="text/javascript">
var w = screen.availWidth;

if (w >= 1600)
  window.location.href = '1600.htm';
else if (w >= 1400)
  window.location.href = '1400.htm';
else if (w >= 1280)
  window.location.href = '1280.htm';
else if (w >= 1024)
  window.location.href = '1024.htm';
else if (w >= 800)
  window.location.href = '800.htm';
else if (w >= 640)
  window.location.href = '640.htm';
else
  window.location.href = 'less.html';
</script>
Avatar billede per1291 Nybegynder
06. juni 2005 - 02:45 #9
Det er svært for foxmulder58 at give points, når alle kun kommenterer i stedet for at svare. roenvings sidste finpudsning er det bedste svar - men jeg synes det bør udbygges med nogle {}-tegn, mest fordi dem plejer jeg selv at bruge, men også fordi koden er nem at udbygge med andre ting der skal gøres i samme åndedrag.
Så altså, jeg tillader mig at komme med et svar.

<script type="text/javascript">
var w = screen.availWidth;

if (w >= 1600)
{
window.location.href = '1600.htm';
}
else
{
if (w >= 1400)
{
  window.location.href = '1400.htm';
}
else
{
  if (w >= 1280)
  {
  window.location.href = '1280.htm';
  }
  else
  {
  if (w >= 1024)
  {
    window.location.href = '1024.htm';
  }
  else
  {
    if (w >= 800)
    {
    window.location.href = '800.htm';
    }
    else
    {
    if (w >= 640)
    {
      window.location.href = '640.htm';
    }
    else
    {
      window.location.href = 'less.html';
    }
    }
  }
  }
}
}
</script>

Jeg laver altid indrykninger sådan at et "{" har samme indrykning som det tilhørende "}", og indholdet indrykker jeg én tak mere. Det er en vane jeg har fra Pascal, som jeg lærte for mange år siden. Jeg synes det gør koden mere overskuelig.

Hilsen  Per
Avatar billede per1291 Nybegynder
06. juni 2005 - 02:59 #10
Sig mig, hvad i alverden er der sket med mit script?
Det var ikke sådan jeg indtastede det.
Indrykningerne fungerer ikke. Prøver lige igen.

<script type="text/javascript">
var w = screen.availWidth;

if (w >= 1600)
{
window.location.href = '1600.htm';
}
else
{
if (w >= 1400)
{
  window.location.href = '1400.htm';
}
else
{
  if (w >= 1280)
  {
  window.location.href = '1280.htm';
  }
  else
  {
  if (w >= 1024)
  {
    window.location.href = '1024.htm';
  }
  else
  {
    if (w >= 800)
    {
    window.location.href = '800.htm';
    }
    else
    {
    if (w >= 640)
    {
      window.location.href = '640.htm';
    }
    else
    {
      window.location.href = 'less.html';
    }
    }
  }
  }
}
}
</script>

Hilsen  Per
Avatar billede per1291 Nybegynder
06. juni 2005 - 03:02 #11
Øv. eksperten ændrer min formatering.
Et "else" skal anbringes direkte under "if".

Hilsen  Per
Avatar billede thesurfer Nybegynder
06. juni 2005 - 04:36 #12
Ang "Det er svært for foxmulder58 at give points, når alle kun kommenterer i stedet for at svare.":

Hvis det skal være "helt efter bogen" (som vist ikke eksisterer?), skal man lægge kommentarer, indtil en endelig løsning er fundet.. og så lægger man et svar.. Ellers venter man på at spørger beder brugerene til de rette forslag, om at lægge et svar..

Ang forslag/løsning/svar:

Hvis det er helt rigtigt, er svaret fundet allerede i indlægget 02/06-2005 02:50:24.

Nu er det godt nok op spørgeren, men jeg ville ikke godtage 06/06-2005 02:45:23 og 06/06-2005 02:59:27 som svar, da de bare er "omskrivninger" af 05/06-2005 06:36:04.

I matematikens verden, er der ofte uendelige mange løsninger, idet man bare kan tilføje værdien "K" (konstant) til en formel, og derved få en ny formel/løsning.

/theSurfer
Avatar billede per1291 Nybegynder
06. juni 2005 - 12:00 #13
Irettesættelse accepteret.

Hilsen  Per
Avatar billede foxmulder58 Praktikant
08. juni 2005 - 00:08 #14
jamen så lig dog alle et svar!...og så kan i få point eller havd synes i skal permand have dem alle??

mvh
Mads
Avatar billede roenving Novice
08. juni 2005 - 00:21 #15
Det er i hvert fald -- også efter min mening -- ikke per, som med een eneste linje eller eet eneste komma har bidraget med input til løsningen af dit spørgsmål.

Tværtimod har han tilføjet 300 overflødige tuborg-klammer, så koden bliver mere uoverskuelig (og så har den ti gange så mange linjer som nødvendigt !-)

-- og så bedes du være opmærksom på, at svar-tiden kan være endog _meget_ lang, når ikke en eneste på Eksperten modtager mails om hvad der foregår i de spørgsmål, de deltager i, hvilket for nogle, f.eks. mig og sikkert også theSurfer, betyder, at den eneste chance for at følge op på spørgsmål er at grave sig ned i de sidste mange (for mig !-) 200 spørgsmål, man har deltaget i ...
Avatar billede per1291 Nybegynder
08. juni 2005 - 01:13 #16
Kommentar til roenving:
roenvinge: Du har fuldstændig ret i, at jeg bestemt ikke har fortjent nogen points.
Jeg forsøgte blot at fremskynde en afslutning.
(Nåja, det kunne da være sjovt nok at modtage points som ganske nyt medlem af eksperten.)
Men se, nu går du uden for emnet med din kritik af ekspertens mailservice.
Så kan jeg vel også tillade mig at gå lidt udenfor:
Jeg synes det bør være tilladt at afslutte en diskussion ved at give points til en kommentar.
(Hvilket jeg også har foreslået i det dertil indrettede forum.)

Hilsen  Per
Avatar billede roenving Novice
08. juni 2005 - 01:18 #17
-- lige en hurtig kommentar der: Du er nr. 6755, som har foreslået det, men endnu har ingen fundet en samlet løsning, som tilfredsstiller de krav, man naturligt må have til sikkerhed for relevant aflevering af point (også fordi to skoler på E* har en vidt forskellig mening: Jeg og andre mener, at det er relevant at vente på uddybende spørgsmål/kommentarer før det giver mening at lægge svar, en anden skole mener at alle bør lægge svar, hvis de bare på den allerfjerneste måde kan se deres input som et svar !-)
Avatar billede per1291 Nybegynder
08. juni 2005 - 01:39 #18
Igen til roenving:

To skoler på Eksperten med hver deres synspunkter, Okay. Så lad mig forære dig nogle argumenter:

1. Det må være dødirriterende for en spørger at skulle afvente at et indlæg er markeret som svar, førend der kan gives points. Det er da også en meningstom beskæftigelse at skulle skrive "Smid et svar".
2. Du vil altid være i risiko for at give dine points, førend det forløsende svar endelig kommer.
3. Misbrug af points tror jeg ikke på. Hvad skal folk bruge deres points til? Hvis det er for profilere sig selv, vil de hurtigt blive gennemskuet af os andre - og så vil de kun få points fra deres to eller tre gode venner.
4. Spørgsmål som egentlig er afsluttet bør lukkes. Jeg kan ikke lige regne ud hvad man gør ved spørgsmål som savner svar.

Hilsen  Per
Avatar billede roenving Novice
08. juni 2005 - 01:57 #19
Hrm, kender du ikke begrebet 'skole' anvendt i denne sammenhæng ?-)

Altså at to forskellige grupper, med hver deres håndfuld argumenter, har hver deres mening, hvor nogen i grupperne forsøger at slå den anden gruppes medlemmer i hovedet med deres argumenter, men langt de fleste bare har accepteret, at der ikke findes en endegyldig afgørelse på uenigheden ...
Avatar billede roenving Novice
08. juni 2005 - 02:21 #20
-- ha, i min graven efter spørgsmål, jeg ikke har fået fulgt op på pga. manglende mails, fandt jeg så dette, hvor point er uddelt til et forvrøvlet svar, da det mindste tal, som tilfredsstiller svarerens regexp er 1000100100: http://www.eksperten.dk/spm/622090 (Så fik jeg også slået dig i hovedet !-))
Avatar billede per1291 Nybegynder
08. juni 2005 - 02:38 #21
Nå, jeg fatter ikke en brik af dit eksempel, men det er vel også lige meget.
(Du har dermed alligevel ikke slået mig i hovedet - sorry.)

Jeg ved sgu godt, at en "skole" repræsenterer et vist antal argumenter, og at en "modskole" repræsenterer et vist antal modargumenter - dvs. argumenter for det modsatte synspunkt.

Jeg antager blot, at vi alle - uanset udgangssynspunkt - er modtagelige for argumenter til begge sider.
Af den grund gav jeg dig mine argumenter som en "foræring".

Jeg er ked af at bruge FoxMulders domæne til denne debat. Kunne man gå et andet sted hen måske?

Hilsen  Per
Avatar billede thesurfer Nybegynder
08. juni 2005 - 03:09 #22
Hvis man ønsker at fortsætte en diskution/debat/andet, som brugere af Eksperten ikke behøver at følge med i, kan man f.eks. fortsætte på http://www.ebruger.dk (det er gratis at oprette en profil).. forudsat at de involverede parter ønsker det..

per1291> Ved at kigge i din profil, kan jeg se at du oprettede den torsdag d 5. maj 2005, kl. 18:03.
For lang tid siden, var der nogle brugere, der lavede en FAQ (Frequently Asked Questions/Ofte Stillede Spørgsmål på dansk) til Eksperten, dvs en slags guide/vejledning til hvordan Eksperten virkede. Den kom til at hedde ExpFaq. De gav admin lov til at bruge den, så man kunne hjælpe de nye på vej. Men admin synes ikke at den skulle være en del af Eksperten, og at den skulle være en artikel.. dvs, den skulle ikke integreres i Eksperten. Vi er en del erfarne brugere, der gerne vil have ændret Eksperten lidt.. F.eks. skal man (ved oprettelse) igennem en prøve/forhindringsbane/bootcamp, hvor man kan lære Eksperten bedre at kende (hvordan kommentar/svar/points osv virker)..

Når jeg møder en ny bruger på Eksperten, bliver han/hun rådet til at læse:
ExpFaq - http://expfaq.1go.dk
Ekspertens regler - http://www.eksperten.dk/regler.phtml

Og i visse situationer, anbefaler jeg specielt (da det er en vigtig del af Eksperten):
"Behandling af svar" - http://expfaq.1go.dk/?id=3#behandling_af_svar


Jeg startede selv med at smide et "svar", som det første indlæg, i de spørgsmål jeg deltog i. I starten resulterede det, at mit svar blev afvist, da andre smed korrekte svar (i modsætning til mit). Ofte ville (bl.a. nye) brugere acceptere de forkerte svar, da en masse havde smidt et svar, og de så bliver forvirret.

Min nuværende holdning:
Jeg venter med at lægge et svar, indtil spørgeren har fået løst problemet, og beder mig om at lægge et svar. Alt det der med at oprette nye spørgsmål, bare for at sende pointsne tilbage, synes jeg er for meget.. plus at det tager ressourcer..


PS:
Læs venligst disse sider, så du ikke kommer til at træde folk over tæerne:
ExpFaq - http://expfaq.1go.dk
Ekspertens regler - http://www.eksperten.dk/regler.phtml

/theSurfer
Avatar billede foxmulder58 Praktikant
15. juni 2005 - 20:42 #23
lukketid!
Avatar billede thesurfer Nybegynder
20. juni 2005 - 22:22 #24
foxmulder58> hmm.. jeg forstår ikke din pointsfordeling..? forklar den lige...

/theSurfer
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