Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 01:20 Der er 52 kommentarer og
1 løsning

Height efter browser og opløsning

Kan man lave et script der, hvis browser = Netscape
så sættes height til en bestemt værdi alt efter hvilken resolution brugeren har, f.eks.

If Netscape = yes & resolution (i højden) er =
768 then sæt til height="500"
else if
1024 then sæt til height="800"

osv.

fra resolution 800x600 og opefter.. 

Mvh. Lars
Avatar billede boris Mester
08. oktober 2002 - 06:37 #1
Det her eks. i JavaScript virker både i Netscape og IE. Kan det bruges?
Det er bare lavet til skærmbredde, men kunne jo ændres til height.
var skaerm
skaerm = screen.width;
var faktor;
if (skaerm>800)
faktor=2;
else
faktor=1;
Avatar billede mik789 Nybegynder
08. oktober 2002 - 08:13 #2
Prøv med:

if (navigator.userAgent.indexOf('Netscape') != -1) {
  if (screen.width=800) {
  height = 500;
  } else if (screen.width=1024) {
  height = 800;
  }
}
Avatar billede mik789 Nybegynder
08. oktober 2002 - 08:30 #3
eller snarere (da det er opløsningshøjden du vil gå ud fra):

if (navigator.userAgent.indexOf('Netscape') != -1) {
  if (screen.height=768) {
  var height = 500;
  } else if (screen.height=1024) {
  height = 800;
  }
}

men det er ikke helt klart hvordan du vil have "height" skal variere i forhold til de forskellige opløsninger (800x600, 1024x768, 1152x864, 1280x1024), og heller ikke hvad det er for en højde "height" egentlig står for
Avatar billede mik789 Nybegynder
08. oktober 2002 - 10:20 #4
og så skal der selvfølgelig to = mellem screen.height og værdierne, altså:
if (screen.height==768) og tilsvarende: if (screen.height==1024). sorry ;-)
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 12:07 #5
Hvordan hvis jeg bruge i en tabel?
PÅ den sidste height i denne linie:

<td valign="top" background="images/border.gif" bgcolor="#F1F1F1"><img border="0" src="images/adjust.gif" width="5" height="475"></td>
Avatar billede mik789 Nybegynder
08. oktober 2002 - 12:33 #6
så det er altså height for billedet adjust.gif det drejer sig om ???
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 12:38 #7
Ja.. det er korrekt
den skal kunne være dynamisk i højden med dit script
Avatar billede mik789 Nybegynder
08. oktober 2002 - 12:48 #8
Ok så prøv:

<script type="text/javascript"><!--
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
var hiRes = (screen.height==1024)?true:false;
var loRes = (screen.height==768)?true:false;
//--></script>

Og skriver du din tabelcelle:

<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--
(NS&&hiRes)?document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForHøjOpløsning">'):document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForLavOpløsning">');//--></script></td>

med dette script vil alle med skærmopløsningshøjde på 1024 få billedet med den høje højde og alle der ikke har denne opløsning (dvs. lavere) vil få den lave. Hvis du vil have specielle højdeværdier på dit billede for hver mulig opløsning er det en anden sag
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 12:55 #9
Men hvis jeg der vil det... er det så ikke bare at indsætte nogle flere variabler for de forskellige højder?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 13:08 #10
jo. men så skal du dels definere andre værdier for opløsning i det første script, f.eks.:

var veryLoRes = (screen.height==600)?true:false;
var midRes = (screen.height==864)?true:false;

og så skal du indsætte disse værdier i den dynamiske udskrivning af <img> tag'et:

<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--
if (NS&&veryLoRes) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienDenLavesteOpløsning">'); if (NS&&loRes) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForLavOpløsning">'); if (NS&&midRes) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForMidtersteOpløsning">'); if (NS&&hiRes) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForHøjOpløsning">'); [osv.] //--></script></td>

Princeippet er jo simpelthen at du lader javascript skrive dit <img> tag alt afhængig af skærmopløsningen
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 14:38 #11
Det virker ikke.. det sætter ingen højde ind for tabellen og fjerner helt backgroundbilledet... Jeg har sat det op sådan her:

<script type="text/javascript"><!--
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
var 800x600 = (screen.height==600)?true:false;
var 1152x864 = (screen.height==864)?true:false;
var 1280x720 = (screen.height==720)?true:false;
var 1280x768 = (screen.height==768)?true:false;
var 1280x960 = (screen.height==960)?true:false;
var 1600x900 = (screen.height==900)?true:false;
var 1600x1024 = (screen.height==1024)?true:false;
var 1280x1200 = (screen.height==1200)?true:false;
//--></script>
</head>


<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--

if (NS&&800x600) document.write('<img border="0" src="images/adjust.gif" width="5" height="475">');
if (NS&&1152x864) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienDenLavesteOpløsning">');
if (NS&&1280x720) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForLavOpløsning">');
if (NS&&1280x768) document.write('<img border="0" src="images/adjust.gif" width="5" height="475">');
if (NS&&1280x960) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForHøjOpløsning">');
if (NS&&1600x900) document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForLavOpløsning">');
if (NS&&1600x1024) document.write('<img border="0" src="images/adjust.gif" width="5" height="800">');
if (NS&&1280x1200) document.write('<img border="0" src="images/adjust.gif" width="5" height="1000">');
//--></script>
         
</td>
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 14:38 #12
+ at hvis det er IE skal dette script faktisk slås fra...
Sorry .. det skulle jeg nok ha' nævnt
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 14:55 #13
Faktisk behøver den måske ikke det NS check.

Mit problem er at jeg har siden her: www.theselfimages.com/test.asp
Den mørke verticale steg der ses til højre skal gå helt til bund af skærmen, det samme skal den hvide og den grå tabel på hver siden af denne.
IE kan godt finde ud af dette automatisk. Men NS kan ikke. Derfor styrer jeg højden på hele denne tabel ved, i den celle hvor den mørke streg ligger som et baggrundsbillede, at sætte en fast Height. På den måde vil NS godt vise den hvide, den grå og tabellen med den mørke steg helt til bund.
Dog er problemet så at en fast Height på f.eks. 475 px jo ikke vil være nok hvis brugerens opløsning er mere end 1024x768 px og omvendt vil kunne scrolles op og ned hvis den er mindre. Det med om den er mindre end 1024x768 gør ikke noget. Men det er et problem at siden ikke når til bund, hvis opløsningen er højere end de 1024x768.

Måske er der en hel anden måde at gøre dette på?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 15:32 #14
Du skal altid have </td> i direkte forlænglese af indholdet, ikke på en ny linje. Så scriptet skal under alle omstændigheder slutte:
//--></script></td>

Har du sat de rigtige værdier ind for dit billede i stedet for mine "værdienForLavOpløsning" osv.?
Hvis du har gjort dette, får du så nogle javascript fejlmeddelelser?

En alternativ løsning er at angive hele tabellen i procenter og ligesådan med tabelcellerne. Og så også lave din lodrette streg som en celle i tabellen med en transparent gif inden i og baggrundsfarve som den lodrette streg. Hvis det er sådan at punktet hvor de vandrette og lodrette streger mødes ikke bare er et + (det ser ud som om der er en lille bule på) kan du jo bare skære dette punkt ud som et billede og lægge det særskilt ind i en celle for sig, og så lade de andre streger være tabelceller fra det punkt. Forstår du hvad jeg mener? Jeg har selv gjort noget lignende med en side der SKULLE fungere i NS4 (som ikke kan vise særskilt borders (border-top osv). Der har jeg så lavet disse borders som tabelceller med transp.gif'er og baggrundsfarve som border'en.
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 15:41 #15
Men i Netscape kan du ikke få en tabel til at strække sig ud over hvad der er af indhold i tabellen medmindre du lægger fx et usynligt billede ind til at strække tabellen ud...

Men jeg kan jo ikke sætte en fast højde for dette billede, hvis siden skal kunne holde bund i forskellige opløsninger
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 15:43 #16
En alternativ løsning er at angive hele tabellen i procenter og ligesådan med tabelcellerne. Og så også lave din lodrette streg som en celle i tabellen med en transparent gif inden i og baggrundsfarve som den lodrette streg.

Det er netop hvad jeg har gjort...
Avatar billede mik789 Nybegynder
08. oktober 2002 - 15:45 #17
Jamen det er også ideen at lægge et usynligt billede ind i tabelcellerne. Du kan angive billedets højde til 100%, så vil det vel blive strukket i hele tabelcellens højde. Men det har jeg ikke selv prøvet.
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 15:52 #18
Det virker ikke med at angive det tranparente gif i cellen til 100%
Heller ikke selv om cellen ER 100% og det samme er selve tabellen, hvori cellen ligger...
Avatar billede mik789 Nybegynder
08. oktober 2002 - 16:14 #19
for et billede inde i en celle er 100% det samme som cellens dimensioner, ikke tabellens.

men det er da mærkeligt... det skulle være muligt at angive width og height for et img i procent. se: http://www.w3schools.com/tags/tag_img.asp

har du prøvet med style i stedet. F.eks.: style="heigth:100%; width:100%"

ellers har jeg ikke andre bud lige nu. luk evt. sp. og stil et nyt i kategorien (D)HTML hvor det kun drejer sig om løsningen med transparente gif'er
Avatar billede artery_graphics Nybegynder
08. oktober 2002 - 19:56 #20
Dette spørgsmål er lukket. Der henvises til:
http://www.eksperten.dk/spm/267693
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 00:14 #21
MIK789 => Jeg får nogle fejl på dit script. Tror stadig på at det er den bedste løsning. Men kan scriptet gælde generelt for alle browsere i stedet for et Netscape check? Er det bedre?

Se script fejlene her:
www.theselfimages.com/test2.htm

Mvh. Lars
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 00:18 #22
Dette er de errors jeg får:

Line 66
Char 5
Error Expected Identifier
Code 0

Line 154
Char 12
Error Expected ')'
Code 0
Avatar billede mik789 Nybegynder
09. oktober 2002 - 06:29 #23
OK, der er i hvert fald det galt at alle dine variabler ("800x600" f.eks.) starter med et tal. Det kan de ikke. De skal starte med mindst ét bogstav eller underscore. Det er nok fejlen i linje 66.

Hvad fejlen så er i linje 154 er svært at sige, før du rettet den første fejl. Det er muligt det er den samme fejl.
Avatar billede mik789 Nybegynder
09. oktober 2002 - 06:50 #24
bort set fra det, hvis problemet kun er opløsninger over screen.height 768, så nøjes med værdier for det og derover. hvis der stadig er fejl, så ved jeg ikke om det muligvis fungerer bedre med if - else if sætninger end bare if - if. Jeg kan nu ikke lige se det skulle gøre nogen forskel når bare hver sætning er afsluttet med ; Men hvis du bruger if - else if, skal der en anden form til, nemlig:

if (NS&&SS800x600) {
document.write('<img border="0" src="images/adjust.gif" width="5" height="475">');
} else if (NS&&SS1152x864) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienDenLavesteOpløsning">');
} else if (NS&&SS1280x720) {
document.write('<img border="0" src="images/adjust.gif" width="5" height="værdienForLavOpløsning">');
}
[osv.]

Du kunne også forsøge dig med andre størrelser end screen.height. F.eks. er screen.availHeight et mål for den plads der faktisk er til rådighed når diverse statusbarer og menupaneler er trukket fra. De kan se nogle af de forskellige muligheder her:
http://www.kessels.com/Webdesign/You.html

og her:
http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm

- gå til "Objects, methods and properties" og se på properties for "screen" og for "window". Der er forskellige muligheder alt efter hvad præcist du vil tjekke for, om det er skærmopløsning eller vinduets faktiske mål osv.

Men prøv hele tiden at tjekke efter én ændring ad gangen for at vide hvad er årsag til hvad. good luck!
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 14:18 #25
Jeg kan stadig ikke få det til at virke...
Hvad skulle der være galdt her?

<script type="text/javascript"><!--
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
var height768 = (screen.availHeight==768)?true:false;
var height864 = (screen.height==864)?true:false;
var height900 = (screen.height==900)?true:false;
var height960 = (screen.height==960)?true:false;
var height1024 = (screen.height==1024)?true:false;
var height1200 = (screen.height==1200)?true:false;
//--></script>


<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--

if (NS&&height768) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="1000">');
} else if (NS&&height864) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="500">');
} else if (NS&&height900) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="700">');
} else if (NS&&height960) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="800">');
} else if (NS&&height1024) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="900">');
} else if (NS&&height1200) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="1200">');
}
//--></script></td>
Avatar billede mik789 Nybegynder
09. oktober 2002 - 16:17 #26
er der nogle javascript feljmeddelelser nu?
måske det er et problem både at have variabel for availHeight og height i samme række af betingelser. Kunne tænkes at availHeight kan være sammenfaldende med en anden screen.height. Jeg ville nok vælge enten eller.
Men ellers kan jeg ikke se nogen fejl.
Læg et link til hele koden, som den ser ud nu, så kunne jeg da godt tænke mig at eksperimentere lidt med den. Jeg har selv brugt denne metode, altså dynamisk udskrivning at tags alt efter skærmopløsning, i andre sammenhænge uden problemer. Måske det er et problem at anbringe et script inde i en tabel, men jeg kan ikke se det skulle gøre noget, så længe det drejer sig om udskrivning af et helt tag.
Har du prøvet i NS6? Den har en god funktion til at se javascriptfejl, nemlig dens javascript console. Hvis ikke der er nogen fejlmeddelelser, så er det ikke scriptet som sådan der er noget galt med, men andre ting.
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 16:24 #27
Jeg har en debat kørende her også:
http://www.eksperten.dk/spm/268025

Prøv at læs det. Hvis du stadig mener din metode er den
bedste vil jeg gerne maile dig koden
Avatar billede mik789 Nybegynder
09. oktober 2002 - 19:42 #28
Jamen jeg er sådan set enig med de andre. Jacoba f.eks. skriver:

"det er bedre at teste på intervaller og større end:

var height768 = (screen.height<=768)?true:false;  // lille skærm
var height864 = (screen.height>768 && screen.height<=864 )?true:false; // lidt større
..."

Og det er faktisk også sådan jeg selv har gjort det, når jeg har anvendt denne type script. Jeg var så bare ikke klar over at der er SÅ mange variationer af opløsning. Det er også rigtigt at hvis du vil have en hel automatisk tilpasning til brugeren så er det vinduet ikke skærmen du skal tjekke. Det var derfor jeg lagde de links oven for. Jeg kan ikke helt forstå hvorfor ideen med en tabel i procent hvor de enkelte celler trækkes ud alt efter vinduesstørrelsen ikke skulle virke. Jeg prøver lige at arbejde lidt videre med den idé og vender så tilbage.
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 20:15 #29
Ok.. jeg er enig i at den sidste idé du nævner vil være bedst.
Kan bare ikke forstå, at andre ikke har haft samme problem før.
Jeg har set mange sites der bruger et sådan design med at tabel og celler
når til bund, men som en dynamisk side. Tror faktisk dem jeg har set opdaterer med en onresize funktion. Hvis man skulle finde på pludselig at gører sit vindue mindre. Takker for din tålmodighed.
Avatar billede mik789 Nybegynder
09. oktober 2002 - 23:13 #30
Prøv at se her:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>

<body style="margin:0px; padding:0px;">

<table border="0" cellpadding="0" cellspacing="0" width="100%" style="height:100%" align="center">
  <tr>
    <td width="70%" style="height:30%" align="center">Noget indhold</td>
    <td style="width:2px; height:30%; background-color:#666666"><img src="transparent.gif" width="2"></td>
    <td style="width:30%; height:30%" align="center">Noget andet indhold</td>
  </tr>
  <tr>
    <td colspan="3" width="100%" style="height:2px; background-color:#666666"><img src="transparent.gif" height="2"></td>
  </tr>
  <tr>
    <td width="70%" align="center" style="height:70%">Mere indhold</td>
    <td style="width:2px; height:70%; background-color:#666666"><img src="transparent.gif" width="2"></td>
    <td style="width:30%; height:70%" align="center">Andet indhold</td>
  </tr>
</table>

</body>

</html>

Og prøv at se resultatet på: www.dahr.dk/Web/strukket_tabel.html

Det er vist det nærmeste jeg kan komme. Her er tabellen strukket i hele vinduets højde/bredde, samtidig med at den indretter sig på vinduet ved resize.
Avatar billede mik789 Nybegynder
09. oktober 2002 - 23:16 #31
jeg har selv tjekket i IE6 og NS6. Aner ikke hvordan det ser ud i ie5
Avatar billede mik789 Nybegynder
09. oktober 2002 - 23:20 #32
men jeg indrømmer det ER kringlet. problemet er at man kan angive width i tabelcellerne men man kan ikke uden videre kan angive height. Men hvis man gør det via style går det. Se også: http://www.webtip.dk/artikler/strukturering.php - specielt eksempel 2. Det er godt nok ikke helt så ligetil som det gøres der, men det kan bruges som udgangspunkt.
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 23:38 #33
Hmm.. jeg kan stadig ikke få det til at virke.
Jeg har skiftet alle min Height="100%" ud med denne
style="height:100%" men det gør ingen forskel i NS
Avatar billede mik789 Nybegynder
09. oktober 2002 - 23:47 #34
har du prøvet at se mit eksempel? det virker jo. kunne du ikke prøv at starte forfra derudfra?
Avatar billede mik789 Nybegynder
09. oktober 2002 - 23:49 #35
hvad er det for en NS du snakker om. Hvis det er 4.x er det ikke sikkert den har tilstrækkelig understøttelse af style. Men NS6 er der da ingen problemer med.
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 23:57 #36
Ja.. din virker ikke i NS 4.x men fint nok i NS 7.0
Kan jeg maile dig koden fra min side... ?
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:00 #37
Ellers prøv at se her:
http://www.theselfimages.com/kode.txt
Avatar billede mik789 Nybegynder
10. oktober 2002 - 00:00 #38
du er velkommen. det er muligt at man ved at kombinere height= og style=height: kan komme frem til noget som også ns4 kan spise. Men har du nogen idé om hvor mange ns4 brugere der vil besøge dit site. På dem jeg har har der inden for det sidste år ikke væren en eneste. Kun IE 5-6 og NS6. Men det kommer selvfølgelig an på din målgruppe.
Avatar billede mik789 Nybegynder
10. oktober 2002 - 00:02 #39
sådan så den da ikke ud forleden dag - der var der en anden top + en tværgående linje
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:08 #40
Jeg har nogen besøgene på NS 4.x (ikke mange dog) men det er mest
princippet i, at det bare SKAL virke i alle browserer. Det løser en masse
problemer. Især hvis man senere ser siden på en mac, hvor det som altid
fucker helt op. Virker det i NS 4.x virker det også på mac.

Men er vi helt gået bort fra det script der selv sætter en højdeværdi ind
for tabelcellen hvori den vertikale mørkegrå streg ligger som et baggrundsbillede der kan udvide sig til bunden af skærmen?

Denne:
<td valign="top" background="images/border.gif" bgcolor="#F1F1F1"><img border="0" src="images/adjust.gif" width="5" height="475"></td>

Hvor height på 475 px kunne blive dynamisk !!?
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:12 #41
Prøv igen: http://www.theselfimages.com/kode.txt
Havde fået slettet noget. Dette er den endelige version.
Avatar billede mik789 Nybegynder
10. oktober 2002 - 00:13 #42
næ, det bestemmer du jo. jeg troede det var dig der var gået bort fra den løsning pga af kommentarerne på http://www.eksperten.dk/spm/268025 ;-)

Men det er jo rigtigt som de sagde at det nytter ikke noget at have højder for hver eneste mulige skærmopløsning over 768 eller hvad det var. du må vælge nogle intervaller, eller vælge at prioritere de mest almindelige skærmopløsninger, og så blæse på om der kommer scrollbarer hos nogle få der har andre opløsninger
Avatar billede mik789 Nybegynder
10. oktober 2002 - 00:15 #43
men for øvrigt er jeg på vej ind til dynerne nu, så vi må fortsætte engang i morgen
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:17 #44
Den står perfekt i både IE og Opera, men på samme måde i NS 4.7 og NS 7.0
hvor den hvide + stregen + den grå flade kun går til lige under denne tekst: (der skubber udvider tabellen vertikalt)

English news number 2

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:21 #45
Med denne havde jeg netop valgt de mest almindelig opløsning og jeg er enig i at nogen må få en srcollbar at se. Det har jeg tænkt fra starten om dem der har en opløsning under 1025x768.

Men lad os gøre hvad end der kan lykkes. Om det er style eller script !!!!

(bemærk at jeg ikke har skrevet de højeste opløsninger ind endnu)

<script type="text/javascript"><!--
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
var height768 = (screen.availHeight==768)?true:false;
var height864 = (screen.height==864)?true:false;
var height900 = (screen.height==900)?true:false;
var height960 = (screen.height==960)?true:false;
var height1024 = (screen.height==1024)?true:false;
var height1200 = (screen.height==1200)?true:false;
//--></script>
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:21 #46
Okay, sov godt...
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 00:22 #47
Blir nødt til at give dig en bonus, hvis dette kommer til at virke.
Avatar billede mik789 Nybegynder
10. oktober 2002 - 17:11 #48
OK. din kode.txt udgave ser jo OK ud i IE. Jeg kan ikke se den i NS6 når den hedder txt til efternavn (så viser NS6 bare selve koden). Men siden jeg kunne få mit tabelforsøg (oven for 09/10-2002 23:13:54) til at lykkes også på NS6, her jeg svært ved at forestille mig at det ikke også skulle se ordentligt ud i NS7. Du kan evt. teste hvis du selv har NS7 derhjemme. Gå ind på www.dahr.dk/Web/strukket_tabel.html og se om det ikke er OK.

I så fald må du også kunne få din style udgave til at se ordentlig ud på både IE, NS6 og NS7. Så er der kun NS4.x tilbage. Og der bruger vi så script udgaven. Dvs. din NS variabel skal kun rette sig imod NS4, men vi skal måske også bruge en variabel for IE, og det kan så f.eks. se sådan ud:

NS4 = (document.layers)?true:false;
IE = (document.all)?true:false; // dækker IE 4-6

Derefter kommer dine skærmvariabler som oven for:

var height768 = (screen.availHeight==768)?true:false;
var height864 = (screen.height==864)?true:false;
var height900 = (screen.height==900)?true:false;
var height960 = (screen.height==960)?true:false;
var height1024 = (screen.height==1024)?true:false;
var height1200 = (screen.height==1200)?true:false;

Dog vil jeg stadig mene det er en dårlig idé at blande screen.height og screen.availHeight. Jeg synes også det er bedre som de andre sagde at teste for nogle intervaller, fordi der måske kan være små variationer der gør at den præcise skærmopløsning er lidt anderledes. F.eks.:

var height1024 = (screen.height>1020&&screen.height<1100)?true:false;

osv.

OK. Nu er spørgsmålet så om du kender den præcise afstand fra toppen af vinduet til toppen af den celle hvor du har den lodrette streg. Hvis du gør det kan vi bruge innerHeight (der er Netscapes værdi for det til rådighed værende vindues højde) minus denne afstand (som jeg lige nu bare kalder for "afst" neden for) og behøver ikke noget præcist mål. Og så ser tag'et sådan ud:

<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--
(NS4)?document.write('<img border="0" src="images/adjust.gif" width="5" height="'+innerHeight-afst+'">'):document.write('<img border="0" src="images/adjust.gif" width="5" style="height:100%">');
//--></script></td>

Hvis du på den anden side ikke kan angive denne afstand, er du nødt til at indsætte præcise værdier for højden af adjust.gif som du så evt. sjusser dig til ved at se det i browseren. Og så får vi et script af typen (som vi har haft før):

<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--
if (NS4) {
  if (height1024) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="900">');
  } else if (height1200) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="1100">');
  }
} else if (IE) {
document.write('<img border="0" src="images/adjust.gif" width="5" style="height:100%">');
}
//--></script></td>

Du må selv sætte flere betingelser og højder (de rigtige, jeg har bare sat tilfældige højder på billedet) ind efter behov, og ligesådan den rigtige "afst". Men princippet er jo klart nok: du skal have en if løkke der tester for NS4 og hvis ikke det er den, som så skriver ud for IE, og inde i den nogle løkker der tester for forskellig screen.height

Hvis det giver javascriptfejl er det sikkert bare syntaks fejl (tjek ' og " osv.). Men hvis ikke det giver javascriptfejl, men alligevel ikke virker, så tror jeg ikke rigtig jeg kan komme videre...
/mik
Avatar billede artery_graphics Nybegynder
13. oktober 2002 - 20:53 #49
Det virker altså ikke i NS overhovedet men fint med at lade IE gå uden om dit script og vise det rigtigt. Hvis du ikke har nogen NS, kan du selv her se problemet:
http://www.theselfimages.com/test.asp?category=5&page=14&language=uk

Jeg har nemlig sat dit IE check (denne: IE = (document.all)?true:false; // dækker IE 4-6) til LAYERS i stedet for ALL og dette gør at IE nu viser hvordan det ser ud i NS, blot at i NS stopper den hvide og grå farveflade også sammen med stregen i toppen af skærmen. Det er som om den bare ikke vil sætte den height variabel fra scriptet ind !?!
Avatar billede artery_graphics Nybegynder
13. oktober 2002 - 21:09 #50
Hov.. nu virker det faktisk alligevel. Det var min fejl.
Så nu er der faktisk kun én ændring. Dit NS check skal ikke kun gælde for NS 4.7 (layers) men for alle NS. Dette fordi IE forholdene ikke virker i NS 6.0 eller 7.0 men NS forholdene virker fint for NS 4.7 men ikke for NS 6.0 og 7.0 fordi disse hverken får lov at bruge scriptet eller kan kører på IE forholdene...
Avatar billede artery_graphics Nybegynder
13. oktober 2002 - 21:20 #51
Men jeg kan vel bare tilføje denne til scriptet:
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;

Men hvad skal der så står her for at få NS forholde til at gælde for begge NS versioner?

<script type="text/javascript"><!--
if (NS4) {
  if (height1024) {

Noget med if (NS4, NS) eller ;NS eller & NS?
Avatar billede artery_graphics Nybegynder
14. oktober 2002 - 00:55 #52
DET ER KOMMET TIL AT VIRKE PERFEKT.
I både NS 4.7 og NS 6.0 og 7.0

Der er en 40 point bonus. Så post et svar.
TUSIND TAK for din tålmodighed og hjælp.
Avatar billede mik789 Nybegynder
14. oktober 2002 - 07:43 #53
GODT det kom til at virke!
Det ER besværligt med de der browserforskelle men det er vilkårene.
;-) Mik
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