Oprettet søn. d. 28. januar 2001 kl. 21:16:14

janegil
janegil (20.557 point. Point ude: 4.603)

W3C-DOM skript for tabell-opprettelse

http://lbk.olivant.fo/ (...) bruker javascript mot W3Cs DOM. Skriptet oppretter først et H1-element, deretter et TABLE-element.

Opprettelsen av H1 virker i både IE5.5 og Netscape 6. Men opprettelsen av tabellen virker bare i Netscape, selv om jeg prøver å kode begge på samme måte.

Har noen et forslag til hva som gjør at tabellen går galt i IE, når H1 går fint? Er det mulig å få det til å virke i IE, uten å falle tilbake til IE4-DOM?

Skrevet søn. d. 28. januar 2001 kl. 21:22:09| #1

defrost
defrost (30.759 point)
Dette virker i IE5.5. Prøv at sammenligne og se, om du kan finde din fejl:

<html>
<body>
<script>
function buildTable(){
  docBody = document.getElementsByTagName(\"body\").item(0)
  myTable = document.createElement(\"TABLE\")
  myTable.id =\"TableOne\"
  myTable.border = 1
  myTableBody = document.createElement(\"TBODY\")
 
  for (i = 0; i < 3; i++){
    row = document.createElement(\"TR\")
   
    for (j = 0; j < 3; j++){
     
      cell = document.createElement(\"TD\")
      cell.setAttribute(\"WIDTH\",\"300\")
      cell.setAttribute(\"HEIGHT\",\"50\")
      cell.setAttribute(\"align\", \"right\")
      textVal = \"Cell \" + i + \"_\" + j
      textNode = document.createTextNode(textVal)
      cell.appendChild(textNode)
      row.appendChild(cell)
   
    }
 
  myTableBody.appendChild(row)
 
  }
 
  myTable.appendChild(myTableBody)
  docBody.appendChild(myTable)
}
window.onload = buildTable
</script>
</body>
</html>

Skrevet søn. d. 28. januar 2001 kl. 21:45:34| #2

jakoba
jakoba (172.852 point)
ku det passe at TBODY er blevet obligatorisk i DOM?
defrost laver en \"TBODY\" og attacher; men janegil mangler den.

Skrevet man. d. 29. januar 2001 kl. 09:54:15| #3

janegil
janegil (20.557 point)
Godt lest, jakoba! Det var TBODY som skulle til for å få eksemplet mitt til å virke i IE også.

I DOM-sammenheng er det ogte nyttig å bruke TBODY for å kunne handtere flere TR\'elementer som en enhet. Men å gjøre det obligatorisk, det må være en feil i IE.

Når jeg går videre enn eksemplet, får jeg fortsatt problemer - debugging av javascript/DOM er visst en hvit flekk på kartet... Kunne se ut som det er viktig om jeg setter TD inn i TR før eller etter at jeg har satt TR inn i TBODY, men det ville vel stride mot hele ideen med å bruke DOM til å gjøre dokumentet dynamsk?


Skrevet man. d. 29. januar 2001 kl. 11:56:41| #4

janegil
janegil (20.557 point)
defrost: er navnet ditt en referanse til et produkt som konverterer Cold Fusion til ASP?

Jeg finner meg selv i gang med å bruke Cold Fusion til å lage et mega-skript som jeg sender ut til browseren, hvor skriptet bygger dokumentet fra grunnen av. Det ville nok vært smartere om det skriptet kjørte på serveren. Kan ASP, eller noe annet for den del, kjøre DOM-skripting på serveren? Min side kommer fx til å være uleselig på Opera mens vi venter på W3C-DOM støtte der. Hvis skriptet kjører i serveren, er det ikke en gang viktig hilken DOM det bruker. Hvis det virker, så virker det.

Skrevet man. d. 29. januar 2001 kl. 12:03:42| #5

defrost
defrost (30.759 point)
janegil: Nej, mit handle har intet med det at gøre. Det har bare hængt ved i en del år efterhånden.. Defrost, used to be cool. :)

Du kan ikke helt sige om ASP eller PHP understøtter DOM-skripting, da de bare sender kode til browseren. Om det så er DOM-script eller standard HTML eller et jpg-billede er egentlig underordnet, men det lyder som om dit projekt godt kunne have brug for server-side-scripting.

Kender desværre ikke Cold Fusion ret meget.

Skrevet man. d. 29. januar 2001 kl. 12:16:19| #6

janegil
janegil (20.557 point)
Cold Fusion er god, men begynner i mine øyne å bli litt gammeldags. Jeg savner serverside XSL/T, evt. supplert med serverside DOM.

Selv synes de sikkert at de er moderne, de har masse Javabønnegreier, som hittil ikke har interessert meg. Dessuten er de nylig fusjonert inn i Macromedia, så det kommer vel Flash-DOM programmering før HTML/XML-DOM. (Kjære Gud! La Flash skifte til XML som dataformat FØRST! Det er selvsagt usunn forretning, for så kunne jeg lage Flash-filer uten å eie noen Flash-editor.)

Skrevet man. d. 29. januar 2001 kl. 14:39:37| #7

janegil
janegil (20.557 point)
Konflikt mellom IE4-DOM og W3C-DOM i IE5.5

Jeg har kodet

<div id=\"tdb\"></div>
<script type=\"text/javascript\">       
  tdb=document.getElementById(\"tdb\");

Dette er korrekt W3C-DOM kode, der den 3. linjen oppretter en ny javascriptvariabel som heter \'tdb\'.

Men IE5.5 forstår IE4-DOM også, og der eksisterer en variabel som heter \'tdb\' fra før. Jeg synes det er logisk å gi javascriptvariablen og elementet samme navn - beklageligvis syntes designerne bak IE4-DOM det samme, så vi kolliderte.

Konklusjon: For å få W3C-DOM til å kjøre i IE5.5, uten innblanding fra IE4, må jeg unngå å bruke id-verdier som variabelnavn.


Skrevet fre. d. 02. februar 2001 kl. 12:31:25| #8

janegil
janegil (20.557 point)
<tbody> ER obligatorisk!

Har finlest http://www.w3.org/ (...)

Det viser seg at TBODY-elementet er obligatorisk, baåde i HTML og DOM. Men hvis tabellen bare har ett TBODY-element, kan taggene (<tbody> og </tbody>) utelates...

En annen sak er at jeg heller ikke har lov å legge TBODY inne et annet TBODY. Sp jeg må droppe planen om å bruke TBODY til å vise/skjule varierende detaljnivåer dynamisk.

Hverken IE eller Netscape gir javascript-feil når jeg legger TR ved siden av TBODY, og TBODY inne i TBODY - pokker ta dem, jeg vil gjerne ha feilmeldinger når jeg lager feil.


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

hvordan fungerer en "phone version" af en side?

Oprettet den 25. maj 2012 kl. 13.03
kurdo giver 200 point for svar | Giv et svar »

Opsætning af design

Oprettet den 24. maj 2012 kl. 20.33
EveryMA giver 60 point for svar | Giv et svar »

adchoices - hvordan opretter man en konto?

Oprettet den 24. maj 2012 kl. 10.53
svogerslev giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger