Avatar billede jesperkh Nybegynder
23. november 2000 - 23:16 Der er 12 kommentarer og
1 løsning

opløsning script... virker ikke i netcape

Hej ...

Jeg har hjemmesiden www.sogemaskiner.dk og på den har jeg indsat følgende script

<SCRIPT LANGUAGE=\"JavaScript\"><!--
if (navigator.appName == \'Netscape\'){
    if (screen.height > 768) { location.href = \'index2.htm\'; }
    if (screen.height == 768) { location.href = \'index2.htm\'; }
    if (screen.height == 600) { location.href = \'index.htm\'; }
    if (screen.height == 480) { location.href = \'index.htm\'; }
    if (screen.height < 480) { location.href = \'index.htm\'; }
}           
    else {
    if (navigator.appName == \'Microsoft Internet Explorer\'){
        if (screen.height > 768) { location.href = \'index2.htm\'; }
        if (screen.height == 768) { location.href = \'index2.htm\'; }
        if (screen.height == 600) { location.href = \'index.htm\'; }
        if (screen.height == 480) { location.href = \'index.htm\'; }
        if (screen.height < 480) { location.href = \'index.htm\'; }
    }
    else if (navigator.appName == \'*\'){
        if (screen.height > 768) { location.href = \'index2.htm\'; }
        if (screen.height == 768) { location.href = \'index2.htm\'; }
        if (screen.height == 600) { location.href = \'index.htm\'; }
        if (screen.height == 480) { location.href = \'index.htm\'; }
        if (screen.height < 480) { location.href = \'index.htm\'; }
    }   
}   
//--></SCRIPT>   

Problemet er at når jeg åbner i netscape, skifter den ikke til den url der passer til opløsningen

andet problem hvis skifter opløsning på min skærm (1024x768 ned til 800 x 600) og prøver og gå ind på min hjemmeside, så står IE bare og klikker, uden og hente nogen side...

Håber i kan hjælpe...

Jesper
Avatar billede zaknafein Praktikant
23. november 2000 - 23:39 #1
Dit sidste problem kommer fordi:
du starter med at kalde index.htm som laver et check på opløsningen.
Hvis height == 600 kaldes index.htm igen, og der sker endnu et check og index.htm kaldes igen og igen og igen.....osv.

Når man kører i en opløsning på 768, vil index2.htm blive kaldt og den laver IKKE et check, men bliver bare vist....
Avatar billede jesperkh Nybegynder
23. november 2000 - 23:45 #2
Hej zaknafein
Hvad gør jeg for at undgå det...
Avatar billede zaknafein Praktikant
23. november 2000 - 23:54 #3
Hvis opløsningen er 1024 X 768 er det jø ikke nødvendigt at kalde index.htm igen. Du kan bare lade være med at gøre noget, og kun checke på de andre opløsninger som kræver kald af ny side...
Avatar billede zaknafein Praktikant
23. november 2000 - 23:58 #4
Der er ikke forskel på din funktionalitet hvadenten det er netscape eller IE. Så hvis der ikke skal ske andre check, som kræver X-Browser kompabilitet, kan du jo skippe, dit browsercheck, og kun checke på opløsningen.
fx:
        if (screen.height >= 768)
          location.href = \'768.htm\';
        if (screen.height == 600)
          location.href = \'600.htm\';
        if (screen.height <= 480)
          location.href = \'480.htm\';
Avatar billede jesperkh Nybegynder
24. november 2000 - 00:02 #5
Du bliver nødtil at forklare lidt mere... jeg har ikke ret meget forstand på javascript
Avatar billede zaknafein Praktikant
24. november 2000 - 00:05 #6
Ok måske i morgen. Jeg skal til hovedopgaveeksamen i morgen tidlig
:)
Avatar billede gertnissen Nybegynder
24. november 2000 - 00:33 #7
supplerende kommentar..

Ligger dit script i index.htm ?

ok, hvis du svarer JA
- forestil dig at opløsningen er <= 768 så kaldes index.htm igen og opløsningen kontrolleres igen og index.htm kaldes igen og igen og igen og igen

Du går på den måde i et uendeligt loop, det som du oplever som at \"IE bare står klikker\"
Avatar billede gertnissen Nybegynder
24. november 2000 - 00:40 #8
supplerende kommentar til <zaknafain> svar.. (denne gang på dansk)

Jesper ligger dit script i index.htm ?

ok, hvis du svarer JA
- så forestil dig at brugerens opløsning er mindre end 768, så vil dit script kalde index.htm endnu engang og opløsningen kontrolleres igen og index.htm kaldes igen og igen og igen og igen

Din side går på den måde i et uendeligt loop, det er nok det du oplever som om at \"IE bare står og klikker\".

Det <zaknafein> foreslår er at du evt. laver en index.htm med dit opløsningsscript og 2 html filer afhængigt af opløsning. De skal bare ikke hedde index.htm, men eksempelvis index2.htm og index3.htm. (eller 768.htm og lign.)
Avatar billede jesperkh Nybegynder
24. november 2000 - 01:09 #9
Hej gertnissen

Jeg har lavet det sådan her... folk kommer ind på index, som så sender dem vidre til index2 eller index3... på min PC seer det ud til at virke ok nu i IE

<SCRIPT LANGUAGE=\"JavaScript\"><!--
if (navigator.appName == \'Netscape\'){
    if (screen.height > 768) { location.href = \'index2.htm\'; }
    if (screen.height == 768) { location.href = \'index2.htm\'; }
    if (screen.height == 600) { location.href = \'index3.htm\'; }
    if (screen.height == 480) { location.href = \'index3.htm\'; }
    if (screen.height < 480) { location.href = \'index3.htm\'; }
}           
    else {
    if (navigator.appName == \'Microsoft Internet Explorer\'){
        if (screen.height > 768) { location.href = \'index2.htm\'; }
        if (screen.height == 768) { location.href = \'index2.htm\'; }
        if (screen.height == 600) { location.href = \'index3.htm\'; }
        if (screen.height == 480) { location.href = \'index3.htm\'; }
        if (screen.height < 480) { location.href = \'index3.htm\'; }
    }
    else if (navigator.appName == \'*\'){
        if (screen.height > 768) { location.href = \'index2.htm\'; }
        if (screen.height == 768) { location.href = \'index2.htm\'; }
        if (screen.height == 600) { location.href = \'index3.htm\'; }
        if (screen.height == 480) { location.href = \'index3.htm\'; }
        if (screen.height < 480) { location.href = \'index3.htm\'; }
    }   
}   
//--></SCRIPT>

Kan du hjælpe med og få det til at virke i Netscape...?
Avatar billede frankeman Nybegynder
24. november 2000 - 22:26 #10
Først lige et spørgsmål: hvilken version af netscape virker det ikke i, for screen.height kom først med javascript version 1.2 (ecma262) og de tidligere udgaver af NN4.x understøtter ikke js1.2 100%. (efter min mening burde du glemme at NN4.x eksistere og koncentrere dig om NN6 og IE4+)

Når du forespørger på screen.height får du skærmens opløsning, men det betyder ikke at brugeren ser sin browser i den opløsning, hvad du end måtte have på din hjemmeside som kræver at du kender opløsningen, behøves det ikke blive vist korrekt !

brug heller følgende, da det forespørger på browserstørrelsen:

document.body.scrollHeight istedet for screen.height (gælder IE)

og

window.innerHeight (gælder NN4.x)

IE udgaven burde også virke i NN6 da all collectionen ikke bruges.

Implementationen vil se således ud:

<SCRIPT LANGUAGE=\"JavaScript\"><!--
if (navigator.appName == \'Netscape\'){
    if (window.innerHeight> 768) { location.href = \'index2.htm\'; }
    if (window.innerHeight== 768) { location.href = \'index2.htm\'; }
    if (window.innerHeight== 600) { location.href = \'index3.htm\'; }
    if (window.innerHeight== 480) { location.href = \'index3.htm\'; }
    if (window.innerHeight< 480) { location.href = \'index3.htm\'; }
}           
    else {
    if (navigator.appName == \'Microsoft Internet Explorer\'){
        if (document.body.scrollHeight > 768) { location.href = \'index2.htm\'; }
        if (document.body.scrollHeight== 768) { location.href = \'index2.htm\'; }
        if (document.body.scrollHeight== 600) { location.href = \'index3.htm\'; }
        if (document.body.scrollHeight== 480) { location.href = \'index3.htm\'; }
        if (document.body.scrollHeight< 480) { location.href = \'index3.htm\'; }
    }
    else if (navigator.appName == \'*\'){
        if (screen.height > 768) { location.href = \'index2.htm\'; }
        if (screen.height == 768) { location.href = \'index2.htm\'; }
        if (screen.height == 600) { location.href = \'index3.htm\'; }
        if (screen.height == 480) { location.href = \'index3.htm\'; }
        if (screen.height < 480) { location.href = \'index3.htm\'; }
    }   
}   
//--></SCRIPT>




Avatar billede jesperkh Nybegynder
25. november 2000 - 12:42 #11
Hej frankman

Jeg har Netscape 4.o8.... >>window.innerHeight<< virker heller ikke i den

>>screen.height<< virker i windows Me\'S IE, ><document.body.scrollHeight<<.. giver en fejlmeddelse

>>IE udgaven burde også virke i NN6 da all collectionen ikke bruges. << Nu spørger jeg sikkert dumt... men hvad betyder >>collectionen<<
Avatar billede frankeman Nybegynder
25. november 2000 - 15:29 #12
nej det er skam ikke et dumt spørgsmål !

objekterne i js ligger i et træstruktur, du ved man skal igennem window for at komme til frame osv.

i IE har man banket træstrukturen sammen til en flad liste, dvs man går igennem ALL og kan derefter kigge hele listen af objekter igennem. (all collectionen)

som eksempel skal man i NN4 igen form for at få fat i sine data fra input felter, mens man i IE bare skriver document.all.ID , hvor ID er ID´et på sit inputfelt eller lign.

I NN6.0, som følger ecma262 stanarden meget nøje kan man få fat i sine objekter via document.getelementById(ID), hvilket også virker i IE.

NN4.08, den kan man vel ikke engang downloade fra netscape længer, få i det mindste fat i NN4.51 eller NN4.7x. Så skulle det ihvertfale virke !
Avatar billede jesperkh Nybegynder
25. november 2000 - 20:15 #13
Jeg har download NN6.0... jammen dog, tænk... nu virker det hele...

Jeg takker og kvitere
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