Avatar billede pollas Nybegynder
09. februar 2001 - 04:10 Der er 5 kommentarer og
2 løsninger

NS6-problemer

I forlængelse af et tidligere spørgsmål (som jeg ikke længere kan finde - måske er jeg bare træt...) har jeg dette problem:

Det er lykkedes mig at få diverse rool-over- og andre lagfunktioner til at virke i hhv. IE4+ og NS4. Men jeg objekt-tjekker (document.all / document.layers), og det forvirrer tilsyneladende NS6, der inden jeg gik i gang godt kunne finde rundt i divs lavet til IE. Disse bliver imidlertid på en eller anden måde sorteret fra, efter jeg har tilrettet det både NS4 og IE4+.

Skal der laves et seperat tjek til NS& (W3/DOM-venlige i det hele taget), eller skal jeg blot finde en tredje både at angive, hvilke af mine definitioner NS6 skal benytte. Jeg er ikke helt klar over, hvorfor den ikke stadigvæk kan bruge IE4-koden, men på en eller anden måde må den jo lade sig narre af document.layyers, eller hvad...?

Håber det er bare lidt forståeligt.. :)

På forhånd tak,

pollas
Avatar billede jakoba Nybegynder
09. februar 2001 - 06:17 #1
Der er nu 3 ting der er værk at checke på:

var DOM = (document.getElementById)? true : false;
          // true for IE5.5 og NS6    (Ens kodning (næsten) for NS og IE

var NS4 = (document.layers)? true : false;
          // true for NS4.0 til NS4.7  (DHTML kompetent NS)

var IE4 = (document.all)? true : false;
          // true for IE4.0 til IE5.0  (DHTML kompetent IE)

Og indtil videre skal der tested på alle tre for at skrive sikker kode.

mvh JakobA
Avatar billede pollas Nybegynder
11. februar 2001 - 23:32 #2
Ja, det har jeg også selv kunnet konstatere andre steder - men hvordan skal jeg så kode til dom - som nævnt vil ns6 nu ikke længere vise den ie4-venlige kode - så hvordan gøres det?
Avatar billede jakoba Nybegynder
11. februar 2001 - 23:58 #3
I dine <div\'s tilføjer du  en  id=\"navn\"
  if (dom) dennediv = document.getElementById(*navn*)
  else if (IE4) dennediv = document.all.navn
  else if (NS4) dennediv = ...

men siden koden virkede før kunne du vel også nøjes med:
  if (DOM || IE4) dennediv = document.all.navn
  else

mvh JakobA
Avatar billede pollas Nybegynder
12. februar 2001 - 00:03 #4
Er grunden til det ikke virker i ns6 nu, at hvis jeg tjekker på document.all, så trigger den ikke ns6?
Avatar billede jakoba Nybegynder
12. februar 2001 - 00:15 #5
Hvis coden før kunne bruges i ns6 via document.all må det vel stadig være muligt. Det jeg er sikker på er at document.layers ikke findes i NS6.
Tester du på appName=\"Netscape\" et sted så det bestemmer?

Ved at tage NS6 med under document.all test flipper du også andre NS/IE-valg, som fx window.innerWidth versus document.body.clientWidth  og de følger stadig appName.
Avatar billede geeeet Nybegynder
12. februar 2001 - 19:42 #6
netscape 6 tager ikke imod document.all men kun document.getElementById...

Se evt. på http://www.scottandrew.com han har et par gode nn6 dhtml-begynder guides...

/Geeeet
Avatar billede pollas Nybegynder
12. februar 2001 - 19:58 #7
geeeet> åh, ja - det er jo et glimrende site - vidste ikke der var hjælp at hente til ns6.

getElementById: gør den, hvad man tror den gør, eller... Og er det simpelthen \"the DOM way\"?

Kigger på sagerne i aften/nat og vender tilbage.

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