Avatar billede anhansen Nybegynder
24. august 2004 - 10:24 Der er 12 kommentarer og
1 løsning

Script skal køre på mozilla også?

Hej,

jeg mangler hjælp til at få oversat følgende script således det vil eksekvere i en mozilla også - og derved kan jeg få det over på en mac så det virker der også. forhåbentligt.

function update(){
                var x = document.body.clientHeight;
                x = x - document.all.pnlSums.offsetHeight;
                x = x - document.all.pnlSearchBar.offsetHeight;
                x = x - 80;
               
                try{
                    document.all.datagridDiv.style.height = x - 70;
                    height = document.body.clientHeight;
                    document.all.outerDiv.style.height = height -20;
                }catch(e){
                    document.all.datagridDiv.style.height = 300;
                    document.all.outerDiv.style.height = "100%";
                    document.body.style.overflow = "auto";
                }
            }

Jeg har prøvet med document.forms["Webform2"].elements.. men kan ikke få det til at virke - i mozillas javascript console ser det ud som om det bliver tolket til document.forms.webform2.elements.element

Håber der er nogle guruer der kan hjælpe med at forklare lidt af forskellen - og om nødvendigt banke mig oven i hovedet med en våd explorer og sige at den er den stygge.. ;-)
Avatar billede roenving Novice
24. august 2004 - 11:26 #1
Jeg er ikke sikker på, at det kan klare alle browsere, men det mest simple handler om .all:

function update(){
  var x = document.body.offsetHeight;//clientHeight virker vist ikke i andet end IE, prøv offsetHeight i stedet
  x = x - document.getElementById('pnlSums').offsetHeight;
  x = x - document.getElementById('pnlSearchBar').offsetHeight;
  x = x - 80;

  try{
    document.getElementById('datagridDiv').style.height = x - 70 + 'px';
    height = document.body.offsetHeight;
    document.getElementById('outerDiv').style.height = height - 20 + 'px';
  }catch(e){
    document.getElementById('datagridDiv').style.height = 300 + 'px';
    document.getElementById('outerDiv').style.height = "100%";
    document.body.style.overflow = "auto";
  }
}

-- og så er fraværet af px (eller en anden enhed !-) og clientHeight ...
Avatar billede anhansen Nybegynder
24. august 2004 - 11:28 #2
ok... det skal ihvertfald testes... Men getElementById - ved du om den virker i IE.
Eller skal jeg lave en lille If browser.appname = IE agtig ting - og så have to scripts eller kan alt dette gøre i "begge lejre".
Avatar billede anhansen Nybegynder
24. august 2004 - 11:38 #3
og det ser ud til at virke både i IE og i mozilla.

Så nu laver jeg det lige færdigt med de andre scripts - og så skal det testes på mac.. Glæder mig helt.. hehe...

Mange tak for hjælpen - så kan man lære ikke at udvikle i explorer.. Eller kan man.. :-)

Smid et svar, så du kan få pointsene.

Er det meget vigtigt at angive 'px' - det burde den da kunne gætte sig til - men selvf. er en standard en standard og den kan /bør man bare leve op til.
Avatar billede anhansen Nybegynder
24. august 2004 - 11:39 #4
er der forresten det samme med offsetWidth og clientWidth?
Avatar billede roenving Novice
24. august 2004 - 11:41 #5
IE4 kan ikke getElementById, men den er også ved at være totalt udryddet på verdensplan ...

-- og grundlæggende er det bedre at teste på, om browseren kan de ting man har brug for, en typisk en fra den ikke så fjerne fortid:

if(document.getElementById){
  //Kode til IE5+, NS6, Mozilla og de andre DOM-browsere
}else if(document.all){
  //Kode til IE4
}else if(document.layers){
  //Kode til NS4
}else{
  alert('Din browser understøtter desværre ikke dhtml tilstrækkeligt');
}
Avatar billede anhansen Nybegynder
24. august 2004 - 11:50 #6
ja.. det kan du have ret i... Det er ikke så vigtigt med de "gamle" browsere.. Medmindre de kommer i spil på mac. Det er et system der kører internt, så vi kan opdatere alle klienter nemt - og de er opdateret. Så jeg har rimelig styr på "kunderne". Der er bare nogle der kun bruger mac - og der skulle det jo også gerne virke. :-)
Avatar billede roenving Novice
24. august 2004 - 11:50 #7
Mht. px er det simpelthen fastsat i standarden at en css-fortolker (her browseren) skal opgive at fortolke længder, hvis der ikke er angivet en enhed, derfor vil en hel del browsere undlade at fortolke uden px; !-)

-- og gætte ?-)

Hvorfor tror du, det er så nemt at lave en browser, som er mange gange så hurtig som IE ?o]

IE er simpelthen stopfyldt med fejlretningskode, hvorfor dens normale indstilling da også er quirks-mode, altså den går i fortolkningen ud fra at det er en rablende idiot, som har sat det sammen, der kommer ind som en html-side, hvorfor de regler som er lavet af en-eller-anden programmør i Bombay for 8 år siden, træder i kraft, og browseren skider højt og flot på den kode, som faktisk er i dokumentet ...

Det giver helt klart nogle problemer, når siden så skal vises i andre browsere, som mere eller mindre overholder standarderne, de har i hvert fald ikke chancen for lige at ringe til Bombay, så de ringer til W3C, som M$-produkterne jo faktisk også burde ...

Derfor er det oftest lettere at udvikle mod f.eks. Mozilla eller Opera, for de bugs IE har i standards-mode er ret veldokumenterede, så det er ret nemt at finde de få work-arounds man skal tilføje !o]

-- velbekomme '-)
Avatar billede anhansen Nybegynder
24. august 2004 - 11:53 #8
function fnTrapKD(btn){
if (document.all){
  if (event.keyCode == 13)
  {
    event.returnValue=false;
    event.cancel = true;
    btn.click();
  }
}

er der nogle af disse der ikke kan køre i mozilla?
Avatar billede roenving Novice
24. august 2004 - 11:55 #9
Hvis du kan styre dine Mac-brugere kan du jo fortælle dem, at det du laver, har du kun tid til at lave, så det virker i Netscape, Mozilla, FireFox, Camino, mens det vil kræve nærmere test, at kigge efter, om det vil du i Safari -- IE/Mac er udelukket !-)
Avatar billede anhansen Nybegynder
24. august 2004 - 11:56 #10
Så kom kommentaren.. hehe... :-) Jeg er helt enig. Vil også meget gerne være bedre til det cross-platform-browser ting.
Det generer mig lidt at jeg ikke ved nok - for når noget jeg laver ikke virker i IE - er jeg nødt til at lave det om fordi de fleste herinde bruger ie - og så ender det omvendt - at jeg leder efter workarounds til at overholde standarden - og det holder jo ikke.

Men tak for hjælpen.. Det er godt der er andre der kan når jeg ikke selv kan.. :-)
Avatar billede anhansen Nybegynder
24. august 2004 - 11:57 #11
ja.. ie/mac stinker.. Men regner med at de får installeret firefox. Så er jeg ovre det. Har hentet installationsfilen - og så er det det. Så får de også en god browser med i købet.. ;-)
Avatar billede roenving Novice
24. august 2004 - 11:57 #12
Ja, der er stort set ikke noget af det, som virker i andet end IE/Windows ...

-- skal lige se om jeg kan finde en oversættelse til standarderne og/eller andre browsere, for netop events er en jungle !-)

-- og tak for point ;~}
Avatar billede anhansen Nybegynder
24. august 2004 - 12:41 #13
det var så lidt.. Det er vist mig der siger mest tak.. :-)

Øv med events'ne.. Den bruger jeg til at fange enter.. Så den ikke trykker logud hvis man kommer til at trykke enter - logud er nemlig den første button i formen... :-(
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