Bedre (D)HTML

Opdater din HTML og specielt DHTML kode og viden til at understøtte W3C standard-tro browsere som Netscape 6+, Mozilla, Internet Explorer 5+, Opera 5+, Konqueror m.fl. Hvis du synes her er for meget sludder og sniksnak i følgende, så hop direkte til linkssektionen for at få de tekniske detaljer. Er du på udkig efter bøger om emnet, så kan du også hoppe direkte til min bogsektion og se hvad jeg foreslår.

OBS! Som ses af datoen oppe til højre på siden, så er denne side generelt ikke opdateret længe. Jeg har sidenhen lavet en mere opdateret bogliste i min weblog, hvis man er ude efter gode bøger om webudvikling.

Jeg fik lyst til at skrive denne lille "artikel" efter at have kigget i debatforums og nyhedsgrupper om web-udvikling. Her fik jeg generelt et indtryk af at kendskabet til W3C standard baseret web-kodning er lille hos alt for mange. I tæt relation dertil er kendskabet til hvad for en slags browser Netscape 6.x/7 og Mozilla er, og hvordan man koder til dem tilsyneladende også et problem.

Selvom kernen i denne artikel er W3C-standarderne, så kommer den på overfladen til at handle en del om Netscape 6+, og jeg vil derfor starte med noget der ligner en konklusion, og er et statement som forhåbentlig gør at selv store "Netscape-skeptikere" bliver nysgerrige nok til at læse videre. Lad os derfor starte med straks at slå fast:

Netscape 6+ er meget mere kompatibel med Internet Explorer 5.x (og specielt IE 6.0) end den er kompatibel med Netscape 4.x!

Faktisk er det sådan at html-kode "skrevet til" Netscape 6+ ikke bare som regel også ses fint i Internet Explorer 5 og nyere versioner af denne browser, men også ses fint i Opera 5, Konqueror og et par andre browsere der understøtter de standarder af HTML, CSS og DOM der er anbefalet af W3C indenfor de senere år.

Jeg vil ikke i denne tekst direkte vejlede i hvordan man koder korrekt efter W3C-standarderne, men har til sidst lagt en række links til hvor man kan læse mere om de mere tekniske detaljer. Denne artikel er skrevet som en introduktion til at skabe et overblik og en forståelse for betydningen af de nye standarder.

For den almindelige hobby webdesigner som ikke beskæftiger sig med "Dynamisk HTML" (DHTML), handler det mest om at få opgraderet sin kode så den vises i browsere som hverken understøtter NS4.x og IE4 properiatary tags som <LAYER>, <ILAYER>, <MULTICOL>, <BGSOUND> og <MARQUEE> (Support for MARQUEE-tagget er dog tilføjet i Mozilla version 1.1, og vil derfor nok også kunne forventes i Netscape-versioner der efterfølger 7.0). Det vil nok komme som en overraskelse for mange at f.eks. <LAYER> og <ILAYER> tags der blev introduceret i Netscape 4 IKKE er understøttet i Netscape 6+! Dernæst er det nok også en god idé at studere <!doctype>'s betydning for hvordan sider renderes i Netscape 6+, Internet Explorer 6+ til Windows og Internet Explorer 5+ til Mac.

For DHTML-programmører handler det desuden om at sætte sig ind i en helt ny DOM til afløsning for IE4's "document.all-DOM" og Netscape 4.x's "document.layers-DOM". Både Internet Explorer 5+ og Netscape 6+ understøtter den nye W3C DOM (document.getElementById). IE5+ har også bibeholdt bagud kompatibilitet med den gamle IE4-DOM, men Netscape har i deres nye browser-versioner helt skrottet bagud kompatibilitet med NS4.x's DOM!

Lidt historie

Lad os starte med et lille kig tilbage på det der engang var omtalt som den store browser-krig mellem Netscape og Microsoft. Efter at Microsoft fik fiasko med et forsøg på at indføre deres eget globale netværk i stedet for Internet, fik Microsoft pludselig meget travlt med at komme ind på markedet for web-browsere, og satte store ressourcer af til at skabe en browser der kunne slå Netscapes dominans på området ud. Det tog nogle browser-generationer hvor Microsoft legede "catch-up" med Netscape's seneste versioner, og hvor MS var nødt til at lave deres browser helt kompatibel med hvad man (ihvert fald lige på det begrænsede område) kunne kalde "storebror Netscape"! Men fra omkring 4. generation af Netscape Navigator og Internet Explorer er Microsofts browser på højde med Netscape's, og de to browser fabrikanter begynder at gå hver sin vej. Og det er her roden til de kompatibilitets problemer vi ser i dag ligger. Det store "buzz-ord" i tiden er Dynamisk HTML, og Netscape er først ude med deres 4. generations browser, som implementerer et dynamisk fundament på deres eget nonstandard document.layers model, mens IE4 kort efter introducerer ligeledes nonstandard document.all modellen.

Standarderne kommer på banen

Heldigvis bliver både Microsoft og Netscape talt til fornuft igen, og får rettet deres browseres videre udvikling ind i retning af de af W3C anbefalede standarder (HTML-4, CSS-1, CSS-2, DOM-1, DOM-2) der for en stor dels vedkommende blev lagt frem i endelige udgaver kort efter de to 4. generations browsere var kommet frem. Microsoft er heldige her; W3C's standarder ligger meget tæt op af det de allerede har implementeret. Netscape derimod må indse at det design de har bygget deres browsere på i mange år, slet ikke er up-to-date til at understøtte de nye standarder. Netscape tager derfor den drastiske beslutning at starte helt forfra med at bygge en ny browser op fra bunden, skræddersyet til at understøtte de nye web-standarder, og med multi-platform support. Microsoft behøver til gengæld ikke at ændre så meget i deres browser, for at få IE5 til at understøtte standarderne i hvert fald nogenlunde.

Mozilla projektet

Netscape gør noget lidt overraskende idet de grundlægger et "open source" projekt som skal ligge til grund for deres nye browser. At det er "open source" betyder at alle har adgang til kildekoden bag, og alle kan deltage i udviklingen. Der kan skrives meget om Mozilla-projektet; Det er faktisk ikke bare et browser-projekt, men et helt multi-platforms "API" som kan bruges til meget mere end at skrive en browser i. Men lad os her holde fokus på browserteknologierne... Det primære projekt er Mozilla-browseren, men den bygger på en række mindre komponenter som f.eks. Gecko der er renderings-motoren som fortolker HTML-kode og viser det i et vindue. Bl.a. denne Gecko-motor ligger til grund for Netscape 6+ browseren, samt en række andre browsere som K-Meleon og Galeon. Mozilla, Netscape 6+, K-Meleon og Galeon er alle browsere med forskellig brugerinterface og forskellige faciliteter ved siden af selve browser-delen, MEN det er Gecko-motoren der renderer www-siderne i dem alle!

Hele filosofien ved Mozilla-projektet er at skabe et Cross-platform fundament der let kan flyttes til nye systemer, forvent derfor også at Gecko-motoren pludselig en dag dukker op i browser-delen af dit nye moderne Internet-forberedte TV, i din nye smarte spil-konsol med Internet-adgang, i info-boksen på banegården, i din mobil-telefon, eller...?

Selvom Mozilla er grundlagt af Netscape, og mange af de folk der arbejder på projektet også stadig er lønnet af Netscape, så er projektet i dag ikke strengt styret af Netscape. Måske er det derfor at de på Mozilla-projektet har valgt at gå efter den perfekte understøttelse af W3C-standarderne, og droppet en stor del af bagud-kompatibiliteten med Netscape 4.x på den bekostning. Den manglende bagud kompatibilitet har selvfølgelig skabt en del frustrationer og også nogle steder sure miner. Men selvom det er lidt irriterende lige nu, så er det nok en beslutning som både brugere og web-udviklere på lang sigt vil blive glad for.

Netscape 6.0 kom ud i slutningen af år 2000, og det kan nok diskuteres om det var for tidligt. Fakta er i hvert fald at den bygger på Mozilla-teknologi som vel egentlig knap nok var regnet for at være på "beta-niveau" (Mozilla version 0.6/M18), dvs. kode som langt fra var betragtet som værende "produktionsklar". Og Netscape 6.0 og 6.01 har da også fået et ry for at have lidt rigelig med bugs. Men ikke desto mindre var det en MEGET interessant browser da det uden tvivl var den browser med den bedste understøtte af W3C standarderne der nogensinde havde set dagens lys fra de to store browser-producenter. Andre browsere som Konqueror, Opera og Internet Explorer er dog også efterhånden kommet rimelig godt med, og så er der selvfølgelig Mozilla-browseren selv, som på de fleste områder hele tiden er lidt foran alle de andre. Den første fuldt færdige 1. generation af Mozilla-browseren lå klar 5. juni 2002, og Netscape var et par måneder senere klar med Netscape 7.0 baseret på Mozilla 1.0.1. Netscape udgav i øvrigt i slutningen af oktober 2001 Netscape 6.2 der bygger på Mozilla 0.9.4. Netscape version 6.1 bygger på 0.9.2. Er man nysgerrig omkring Mozilla's udvikling, så kan man også altid hente de seneste Mozilla udviklingsversioner på mozilla.org, og læse mere på mozillaZine, MozillaNews og O'Reilly Network's Mozilla DevCenter.

Browserkrigen er slut!

Det er muligt at der set fra Netscape og Microsoft's synsvinkel stadig kører en "browser-krig", men set fra brugerne og web-konstruktørernes side kan man godt med nogen ret sige at den krig er sluttet. I den ideelle Verden hvor alle har opgraderet deres browser til en som er tro mod W3C standarderne, der behøver man nemlig ikke mere bekymre sig om hvilken browser brugeren bruger. Nu findes "den ideelle Verden" selvfølgelig ikke, der vil sikkert stadig være små forskelle browserne imellem når man laver avancerede ting, dels pga. forskelle i graden af support af W3C standarderne, dels pga. bugs i de forskellige browsere. Men det bliver i hvert fald lettere end da man skulle udvikle til to grundlæggende forskellige IE4- og NS4.x-DOMs.

Desværre er der mange sites der slet ikke er opdateret så de virker ordentlig i f.eks. Netscape 6+ og Mozilla. Det gælder specielt sites der benytter sig af Dynamisk HTML, og det gælder desværre ikke kun amatør/hobby-sites, men også mange sites for store "profesionelle" firmaer og organisationer. Disse sites er typisk konstrueret til browsere der understøtter NS4.x og IE4 modellerne til Dynamisk HTML, uden at tage hensyn til de browserne der (kun) understøtter den standardiserede model fra W3C. Og det skal understreges at det bestemt ikke er fordi at W3C's model er sværere eller giver færre muligheder end de gamle properiatary IE4 og NS4.x modeller, faktisk er den langt foran i hvert fald NS4.x modellen.

Den besværlige overgang

Hvor Netscape (eller måske rettere Mozilla) tog det drastiske skridt helt at droppe bagud kompatibilitet til properiatary NS4.x features, så bibeholdte Microsoft sin bagud kompatibilitet til IE4 i deres nyere browsere. Det var selvfølgelig umiddelbart en god ting, idet man så ikke fra den ene dag til den anden behøvede at lave nye sider for at de også virkede i IE5+. De gamle IE4 sider virker stadig i deres nye browsere. Desværre har det så også haft den bieffekt at mange udviklere den dag i dag stadig koder sider til IE4 modellen og evt. også NS4.x modellen. Koder man kun efter de to IE4 og NS4.x modeller rammer man også umiddelbart en stor målgruppe, fordi IE5, IE5.5 og IE6, stadig er bagud-kompatibel med IE4. Umiddelbart synes man måske ikke det er så stort et tab hvis man laver en website som ikke virker i browsere som Netscape 6.x, Mozilla, Opera og Konqueror. Deres udbredelse er forholdsvis lille. Men pointen er at hvis man koder til W3C-standarden understøtter man ikke bare en model som med tiden formodentlig vil blive enerådig, man koder også til en model som allerede den dag i dag er understøttet (i større eller mindre omfang) af Internet Explorer version 5/5.5/6, Netscape 6/6.1/6.2/7, Mozilla, K-Meleon, Galeon, Opera 4/5/6, Konqueror 2/2.1/2.2/3/3.1 og en række flere browsere (specielt med tiden). Man er så også med til at sikre WWW som en åben teknologi hvor folk ikke er tvunget til at bruge en bestemt browser. Ja selv du kan starte med at programmere din egen browser hvis du har lyst (og talent og tid ;-)) uden at have problemer med at finde klart definerede og brugte specifikationer at programmere efter. Af rimelig betydningsfulde browsere er det kun IE4 og NS4.x der er ude i kulden medmindre man vælger at tage specielt hensyn i sin kode til disse to browsere også.

DHTML type support
StandardW3C DOMNon-standard
document propertygetElementById()all[]layers[]
Internet Explorer 6YesYesNo
Internet Explorer 5.5YesYesNo
Internet Explorer 5YesYesNo
Internet Explorer 4NoYesNo
Internet Explorer 5.1 MACYesYesNo
Internet Explorer 5 MACYesYesNo
Mozilla 1.0 & *familyYesNoNo
Netscape 6.2 (Moz0.9.4)YesNoNo
Netscape 6.1 (Moz0.9.2)YesNoNo
Netscape 6.0 (Moz0.6/M18)YesNoNo
Netscape 4.xNoNoYes
Opera 6Yes**MaybeNo
Opera 5.xYes**MaybeNo
Konqueror 3.0YesYesNo
Konqueror 2.2.1YesYesNo
Your browser

* Browsere som bygger på Mozilla-projektets "open source motor" inkluderer Netscape 6.x/7, Galeon, K-Meleon, m.fl.
** Opera 5.x/6 understøtter document.all når den er sat op til at identificere sig som en MSIE browser, men ikke når den er sat op til at identificere sig som en Opera eller Mozilla/Netscape browser.
PS. Beklager det engelsk-sprogede skema her midt i det hele, men det er del af en strategi ;-)

Hvis ikke man føler man kan lade de 5%(?) IE4 og NS4.x brugere der er tilbage i stikken, så vil det sige at man som DHTML-programmør i et stykke tid frem skal skrive sin kode til hele 3 modeller, og det er selvfølgelig en besværlig overgang. Men husk at Nirvana venter forude når andelen af NS4.x og IE4 brugere er faldet til en ubetydelighed, og man kan nøjes med at koncentrere sig om en enkelt gruppe af browsere; De W3C kompatible browsere.

Hvor er der hjælp at hente, og mere information?

Jeg har er samlet en række links til yderligere information. Specielt DHTML-programmører kan finde megen interessant og nyttig information gennem disse links.

Transitioning from Proprietary DOMs and Markup to W3C Standards

Sidder man med eksisterende websider hvor koden indeholder properiatary NS4 og IE4 tags, så er dette et godt sted at hente de første tips til hvordan koden gøres kompatibel med Netscape 6+ og andre W3C-kompatible browsere.
www.stopbadtherapy.com/standards.shtml

Peter-Paul Koch's JavaScript section

Et af mine absolutte favorit links. Her er masser af information om hvordan man koder JavaScript og Dynamisk HTML så det virker med et så bredt udsnit af browsere som muligt. Her er information om de forskellige DOMs (DOM 0, IE4-DOM, NS4-DOM og W3C's DOMs), forskellige browseres grad af support, særheder og bugs, samt gode pointer omkring f.eks. support-detection frem for browser-detection, mm. Enhver seriøs JavaScript eller DHTML koder bør efter min mening tygge sig igennem indholdet her mindst én gang. Opdateres desuden jævnligt med informationer om nye browserversioner.
www.xs4all.nl/~ppk/js

Scott Andrew - DHTML First Aid for the 6.0 Browsers

Om at skrive (og opgradere til) W3C kompatibel Dynamisk HTML.
scottandrew.com/index.php/articles/dhtml_ns6

Scott Andrew - Scripting for the 6.0 Browsers

En gennemgang af de vigtigste DOM metoder i W3C standarden.
scottandrew.com/index.php/articles/dom_1

O'Reilly Network - Javascript and CSS Devcenter

En lang række (for det meste) gode artikler om Javascript, CSS og DHTML.
www.oreillynet.com/javascript

Netscape 6 Evangelism

Teknisk information fra Netscape om Netscape 6+, webstandarder og kompatibilitet med IE. Mange forskellige dokumenter og artikler. Her finder du bl.a en række referencer som giver en oversigt over hvad der supporteres i Netscape 6+, IE5.5 og W3C DOM standarden: window object cross-reference, document object cross-reference, DOM CSS 2 cross-reference og DOM HTML cross-reference. Det kan godt anbefales at gå lidt på opdagelse her.
devedge.netscape.com/evangelism

Gecko DOM Reference

Mozilla/Gecko DOM reference fra mozilla.org (under udvikling, og endnu ikke en komplet reference).
www.mozilla.org/docs/dom/domref

Activating the Right Layout Mode in Mozilla and IE5 for Mac

Om hvordan du bruger "<!DOCTYPE>" og betydningen af det i browsere som NS6 og IE5Mac.
www.hut.fi/~hsivonen/doctype.html

CSS Enhancements in Internet Explorer 6

Information om CSS i Internet Explorer 6, incl. lidt om betydningen af valgt !doctype.
msdn.microsoft.com/workshop/.../CSSEnhancements.asp

Things to Take into Account When Moving to Standards-Compliant HTML and CSS Authoring

www.hut.fi/~hsivonen/standards.html

About Points and Pixels as Units

W3C-standarden gør det muligt at angive f.eks. font-størrelser i en række forskellige enheder. Her er lidt om hvorfor du f.eks. ikke bør bruge Points (pt) på dine websider, og hvad du bør bruge i stedet.
www.hut.fi/~hsivonen/units.html

W3C DOM mailinglist

Her diskuteres W3C DOM implementationen i forskellige browsere. Mailinglist'en er grundlagt af Peter-Paul Koch (Peter-Paul Koch's Javascript Section), men også en række andre gode kapaciteter er aktive på listen, såsom Jeffrey M. Yates (www.pbwizard.com), Eric Costello (glish.com), Scott Andrew LePera (www.scottandrew.com) og Mozilla DOM udvikler Fabian Guisset (Hvem siger at en web-ekspert skal have et blæret website ?). Man kan læse arkiverede indlæg online, eller tilmelde sig mailinglisten og modtage de nye indlæg i sin email postkasse.
groups.yahoo.com/group/wdf-dom

RichInStyle.com Testsuite results

Her er lavet en omfattende samling af CSS testcases der skal vise hvor godt forskellige browsere understøtter CSS standarderne. Desværre er det i skrivende stund kun Mozilla-browseren der er blevet testet i så godt som alle testcases. Men resten kommer forhåbentlig snart?
www.richinstyle.com/php/results.php

RichInStyle.com bug guide - Mozilla & Netscape 6

En oversigt over CSS bugs i Netscape 6.0. Du kan også finde bug-lister for andre browsere her.
www.richinstyle.com/bugs/mozilla.html

Cross Browser biblioteker

Man kan finde mange cross browser DHTML biblioteker på nettet. De fleste er dog konstrueret snæversynet udfra en betragtning af at der kun findes to browsere i Verden, Internet Explorer og Netscape. Mange af disse er end ikke kompatible med nyeste Netscape 6.x og 7! DHTML biblioteker som kun virker med IE4+ og NS4.x er selvfølgelig ikke medtaget her. Følgende er dog stadig kun et lille udsnit af de biblioteker man kan finde:
cross-browser.com
dynapi.sourceforge.net
webfx.nu
Tim Morgans liste over JavaScript biblioteker

Standarder

webstandards.org

En organisation der flittigt har "lobbi'et" (spell?) Netscape og Microsoft til at gøre deres browsere kompatible med W3C standarden. Tildeles af mange en stor del af æren for at de to browser-fabrikanter rent faktisk understøtter W3C standarderne meget bedre i deres nyeste browser-generationer.
webstandards.org

PBWizard

Et site om webstandarder.
www.pbwizard.com

W3C

Standardiseringsorganisationen bag bl.a. HTML, CSS og DOM standarderne.
www.w3.org

ECMAScript Language Specification, third edition

ECMA-262 er kun en standardisering af selve kernen af JavaScript. Web-specifikke objekter er ikke med i denne standard.
www.ecma.ch/ecma1/STAND/ECMA-262.HTM

Browsere

Browsere som understøtter W3C standarderne i større eller mindre grad. Check evt. Peter-Paul Koch's browser-side for en oversigt i hvilket omfang browserne understøtter W3C standarderne.

Mozilla

Browseren fra Mozilla.org er "moder" til bl.a. Netscape 6+ browseren. Er uden tvivl den browser der generelt er længst fremme i understøttelse af CSS1/2 og DOM1/2 standarderne. Mozilla 1.0 blev frigivet i juni 2002, men allerede før havde den mange entuiastiske brugere af de såkaldte "milestone releases" som er en slags beta-versioner. Nyeste version som Mozilla.org fremhæver som deres mest stabile udgivelse, er i skrivende stund version 1.0.1. Version 1.1 er dog også udgivet og selvom denne officielt er en "udviklingsversion" er stabiliteten af denne også ret høj. Avanceret Cross-platform teknologi.
www.mozilla.org

Netscape 6+

Bygger stort set på samme teknologier som Mozilla-browseren, inkl. et avanceret XML-baseret system til at bygge Cross-platform brugerflader på. Version 6.0 blev frigivet i slutningen af år 2000 og bygger på Mozilla 0.6/M18. Seneste udgave er i skrivende stund version 7.0 frigivet i sensommeren 2002 og baseret på Mozilla 1.0.1.
home.netscape.com/browsers

Galeon

Linux/Gnome-browser baseret på Mozilla's Gecko motor, men i modsætning til Mozilla og Netscape 6+ bruges ikke Mozilla-projektets avancerede Cross-platform system til opbygning af brugerfladen. Det har efter sigende gjort Galeon både hurtigere og mere stabil end Mozilla og Netscape 6+. Brugerfladen ligner Internet Explorers.
galeon.sourceforge.net

K-Meleon

Windows-platformens svar på Galeon.
kmeleon.sourceforge.net

Opera 5+

Opera har i nogle år været kendt som "den tredje browser", og er desuden kendt for at være hurtig og kræve få ressourcer. Allerede fra version 4 har Opera nogen support for W3C DOM DHTML, men først fra version 5 fungerer det nogenlunde pålideligt. Dens svaghed er nok JavaScript fortolkeren der godt kan være lidt rigelig "kræsen", og at "dynamisk reflow" slet ikke er understøttet i version 5 og 6 (men vistnok lovet i version 7). Fås til en lang række platforme.
www.opera.com

Konqueror 2+

Linux/KDE-browser. En del af KDE 2+ brugerfladen til Linux, og er en succesfuld nytilkommer i browsernes superliga.Specielt version 3+ er med helt i toppen når det angår avanceret DHTMLsupport af CSS1/2 og DOM1/2 standarderne.
www.kde.org
www.konqueror.org

Internet Explorer 5+

Nærmere præsentation af denne browser er næppe nødvendig.
www.microsoft.com/ie

Andre browsere

Andre browsere som til mit kendskab skulle understøtte DHTML er bl.a. iCab og Omniweb browserne til Macintosh samt IceBrowser og Espial Escape browserne til Java. Jeg er dog ikke sikker på at alle disse der understøtter DHTML baseret på W3C DOM standarderne (Escape's DHTML er vistnok baseret på Netscape 4.x's Layers-model!).
Det er nok også værd at holde øje med udviklingen af MSN TV (tidligere WebTV).

Validering af HTML-kode

Husk det er vigtig at skrive syntaktisk korrekt html-kode. Jo flere syntaktiske fejl i HTML-koden, jo større er risikoen for at en side renderes forskelligt i forskellige browsere, eller at nogle browsere simpelthen bare viser en blank side. Fejlagtig syntaks kan f.eks. være uafsluttede tags eller forkert nestede tags. Herunder er links til en række validator-services man kan bruge. Bemærk at man i nogle tilfælde kan vælge bevist at ignorere fejlmeddelelser om ukendte attributter i W3C-standarderne, hvis man ved de nævnte attributter er understøttet af nogle browsere alligevel. Men tænk også over hvad der sker i de browsere der ikke understøtter de aktuelle attributter, og om ikke du kan opnå samme effekt ved brug af (W3C standard) CSS. Men ignorer aldrig strukturrelle fejl i HTML-koden !
validator.w3.org
www.htmlhelp.com/tools/validator
www2.imagiware.com/RxHTML
www.netmechanic.com
websitegarage.netscape.com
jigsaw.w3.org/css-validator (CSS)

Bøger?

Da jeg skrev første version af dette dokument i juni 2001 var det stort set umuligt at opdrive bøger om DHTML som var ordentlig opdateret omkring W3C DOM. Dengang måtte man finde alle informationer på nettet, og det selvom Internet Explorer version 5 havde været på markedet længe med basal W3C DOM support. Langt om længe er dog efterhånden begyndt at komme nogle odentlige bøger på markedet:

OBS! Som ses af datoen oppe til højre på siden, så er denne side generelt ikke opdateret længe. Jeg har sidenhen lavet en mere opdateret bogliste i min weblog, hvis man er ude efter gode bøger om webudvikling.

In Association With Amazon.co.uk

Efterfølgeren til 1. udgave af Danny Goodman's klassiske og meget udbredte bog "Dynamic HTML: The Definitive Reference" fra 1998 er nu endelig på vej, og denne nye 2. udgave (sept. 2002) har været ventet længe, for den gamle er desværre stadig "biblen" for mange webdesignere der laver Dynamisk HTML selvom den længe har været håbløst forældet når det gælder support for moderne standarder og browsere. Forhåbentlig vil mange udviklere se lyset når/hvis de opgradere deres gamle udgave til den nye version, for Danny Goodman har allerede i nyeste udgaver af sine Javascript bøger (se herunder) bevist at han er helt med på beatet endnu når det gælder support af standarder og et bredt udvalg af moderne browsere. Bogen kan nu forudbestilles hos Amazon, og forventes at kunne leveres omkring d. 20. september.
Kan købes hos Amazon.co.uk
[O'Reilly - ISBN: 0-596-00316-1]

In Association With Amazon.co.uk

"JavaScript Bible - Gold Edition" (4. udgave, aug. 2001) af Danny Goodman's bog er noget af en mursten, og så er nogle af kapitlerne endda kun at finde på den medfølgende CDROM. Har du råd til denne klods kan den dog kun anbefales. JavaScript begyndere bør gå efter standard-udgaven, mens erfarne bør tage Gold Edition. Forskellen på de to ligger først og fremmest i hvilke kapitler der er på tryk (Uanset udgaven du vælger, så får du alle kapitlerne på den medfølgende CDROM). I standard-udgaven er der lagt vægt på at de grundlæggende JavaScript kapitler er på tryk, mens en stor del af disse kapitler er ofret i Gold Edition til fordel for mere avancerede og videregående emner på tryk. Gold Edition er også en glimrende supplement/opgradering til samme forfatters efterhånden lidt forældede 1. udgave af "Dynamic HTML" fra 1998 (men 2. udgave af "Dynamic HTML" er som nævnt ovenover også lige på trapperne nu!) eller til ældre udgaver af Javascript Bible. Bemærk også at Gold Edition generelt har flere sider på tryk (1500 mod 1200) og er i "hard-back" udgave (indbundet). JavaScript Biblen udmærker sig bl.a. ved grundig support-information for forskellige versioner af Internet Explorer og Netscape er angivet for samtlige JavaScript objekter, metoder og egenskaber.
Kan købes hos Amazon.co.uk
[IDG / Hungry Minds - ISBN: 0-7645-4718-6]

In Association With Amazon.co.uk

"JavaScript Bible - 4.th. edition" (4. udgave, juni 2001) er standard-udgaven af ovenstående. Anbefales fremfor ovenstående hvis du er begynder eller bare ikke har råd til den "fine" udgave.
Kan købes hos Amazon.co.uk
[IDG / Hungry Minds - ISBN: 0764533428]

In Association With Amazon.co.uk

"Javascript Examples Bible: the Essential Companion to Javascript Bible" (aug. 2001) er et supplement til de 2 ovenstående bøger med eksempler på tryk som der ikke blev plads til i disse. Bemærk også at du får alle kapitler fra JavaScript Bible med på den medfølgende CDROM, så hvis du ikke har råd til de ovenstående bøger og godt kan leve med kun at have kapitlerne på CDROM, så er dette en billig genvej!
Kan købes hos Amazon.co.uk
[IDG / Hungry Minds - ISBN: 0764548557]

In Association With Amazon.co.uk

Denne 4. udgave (januar 2002) af David Flanagan's "JavaScript - The Definitive Guide" er en meget ambitiøs og grundig JavaScript lærebog og reference. Og der er tale om en bog som efterhånden regnes for en JavaScript-klassiker, men sidder du med 3.udgave eller ældre bør du opgradere. 4. udgave af bogen har også fået nogle gode DHTML relaterede kapitler som er godt opdateret til nyeste browsere (såsom IE6 og N6.1) og W3C DOM standarder. Særdeles anbefalesværdig JavaScript bog, som også fører dig godt og sikkert ind i DHTML, men det skal bemærkes at det er en bog af den "akademiske" type. Hvis man foretrækker en mere "uformel" stil, vil man måske overveje alternativer. W3C DOM reference-delen er holdt i separat fra resten af Reference-delen, og det kan man måske sætte spørgsmål ved om er optimalt. Men en god bog ikke desto mindre !
Kan købes hos Amazon.co.uk
[O'Reilly - ISBN: 0-596-00048-0]

In Association With Amazon.co.uk

For nylig har jeg bemærket "Javascript - The complete reference" (Thomas Powell og Fritz Schneider) i min boghandel. Den ser også ud til at være godt opdateret omkring W3C DOM baseret DHTML, men det er noget af en moppedreng på over 1000 sider, og sikkert ret besværlig at læse i sengen ;-)
Kan købes hos Amazon.co.uk
[Osborne - ISBN: 0-07-219127-9]

In Association With Amazon.co.uk

"Teach Yourself DHTML in 24 Hours" er en kompromisløs bog. Michael Moncur har taget skridtet fuldt ud omkring W3C DOM baseret DHTML, så 90% af bogens eksempler kører kun i browsere kompatible med W3C DOM. Hvis udvikling til Netscape 4.x og Internet Explorer 4 har høj prioritet er dette altså ikke bogen man skal invistere i. Jeg kan nu godt lide denne indgangsvinkel må jeg straks sige, og det skal da også retfærdigvis nævnes at der er sat et enkelt kapitel af til IE4 og N4.x. Det er i øvrigt en let læst og meget praktisk orienteret begynderbog. De allervarmeste anbefalinger herfra.
Kan købes hos Amazon.co.uk
[Sams Publishing - ISBN: 0-672-32302-8]

In Association With Amazon.co.uk

"DHTML and CSS for the World Wide Web - second edition" i Visual Quickstart Guide serien (Jason Cranford Teague). Dette er en begynderbog som ikke er voldsom dyb eller over-ambitiøs. Men den er rigtig god at komme i gang med DHTML med på en overkommelig og ikke alt for tung teoretisk måde.
Kan købes hos Amazon.co.uk
[Peachpit Press - ISBN: 0-201-73084-7]

In Association With Amazon.co.uk

På vej skulle også være "Dynamic HTML Bible" skrevet i fællesskab af Steve Champeon, Scott Andrew LePera, Eric Costello, Andrew Porter Glendinning og Eric A. Meyer. Det lyder interessant, der er i hvert fald nogle gode navne bag. Forventes april/maj 2002. OBS Sidste nye er at bogen desværre ser ud til at være droppet af forlaget. Trist, for den så så interessant ud med de forfattere. Kryds fingre for at de finder en anden udgiver!
Kan købes hos Amazon.co.uk
[IDG / Hungry Minds - ISBN: 0764532359]

In Association With Amazon.co.uk

"HTML & XHTML: The Definitive Guide, 5th edition" (august 2002) af Chuck Musciano og Bill Kennedy er umiddelbart den HTML og XHTML bog der ser mest interessant ud. Det er dog begrænset hvor meget jeg har studeret bøger på dette område skal det siges.
Kan købes hos Amazon.co.uk
[O'Reilly - ISBN: 0-596-00382-X]

In Association With Amazon.co.uk

"Cascading Style Sheets: Separating Content from Presentation" af Owen Briggs, Steve Champeon, Eric Costello og Matt Patterson er ikke en egentlig lærebog i CSS, men mere en lærebog i at bruge CSS rigtigt! Bogen er praktisk orienteret og absolut anbefalesværdig.
Kan købes hos Amazon.co.uk
[Glasshause - ISBN: 1-904151-04-3]

In Association With Amazon.co.uk

Sidst kan jeg desuden anbefale Eric A. Meyer's fine lille CSS-reference, "Cascading Style Sheets 2.0". Specielt DHTML-programmører kan ikke komme udenom at skulle have en god CSS-reference.
Kan købes hos Amazon.co.uk
[Osborne - ISBN: 0-07-213178-0]

OBS! Som ses af datoen oppe til højre på siden, så er denne side generelt ikke opdateret længe. Jeg har sidenhen lavet en mere opdateret bogliste i min weblog, hvis man er ude efter gode bøger om webudvikling.

Hvis du aldrig har handlet hos Amazon.co.uk før, så kan jeg nok skaffe dig et "gavekort" på 5 pund. Send mig den email-adresse du ønsker at bruge til din Amazon-account, så sørger jeg for at du får "gavekortet" tilsendt (Bemærk at hvis angivne email-adressen allerede er registreret hos Amazon.co.uk, så vil du ikke få noget gavekort tilsendt).

Husk at der bliver lagt forsendelse og dansk moms oveni de priser bøgerne er listet til på Amazon.co.uk, men Amazon regner selv den endelige pris ud inden du giver den endelige ordre-bekræftigelse. Min erfaring er at der som oftest er ca. 20% at spare ved at handle edb-bøger hos Amazon.co.uk fremfor i de store boghandler i København, og endnu mere hvis du slår nogle ordrer sammen. Men det varierer selvfølgelig og du bør nok også tjekke prisen hos din boghandel hvis han har den ønskede bog.

 

Valid HTML 4.01! Valid CSS!

Sidst opdateret:
13. september 2002.
Første udgave:
12. juni 2001.

Hvad er nu det her for noget?

For et stykke tid siden synes jeg det var på tide at opgradere og finpudse mine HTML og Javascript færdigheder, specielt omkring Dynamisk HTML, W3C's standarder og understøttelse af alternative browsere. Denne artikel er en opsamling af det lille mini selv-studie jeg satte i gang. Den mest interessante del er nok den samling af links artiklen afsluttes med. Der kan man finde meget nyttig information.

Jeg regner ikke artiklen for et færdigt dokument, men en lille ting jeg vil fortsætte med at videreudbygge og finpudse på et stykke tid endnu.

Kunne han ikke have gjort lidt mere ud af sidens design?

Joow! Det fjols kunne have gjort MEGET mere ud af sidens design, og måske krydret med lidt "cross-browser" kompatibelt DHTML eksempler og hvad ved jeg.
Men jeg regner skam også med at finpudse på både indhold og design en gang i fremtiden. Nu havde jeg bare skrevet det der ligger her, og synes egentlig det var synd det kun lå på min egen PC.

Cross-browser support i praksis

Hvis man ønsker at kode Dynamisk HTML til W3C kompatible browsere, uden samtidig at ofre bagud kompatibilitet til Internet Explorer version 4 og Netscape version 4.x, kan man "føle sig frem" til hvilken DOM (type DHTML) en browser understøtter med Javascript-kode noget lignende følgende:

if (document.getElementById)
{
  // W3C DOM kompatibel
  // kode anbringes her
}
else if (document.all)
{
  // Internet Explorer 4
  // kompatibel kode
}
else if (document.layers)
{
  // Netscape 4.x
  // kompatibel kode
}

På tilsvarende måde kan man i øvrigt snuse sig frem til hvilke properties og metoder en browser understøtter. Se f.eks. siden derom i Peter-Paul Koch's Javascript Section for mere om det emne.

Tager man i øvrigt sin IE4-kompatible DHTML-kode og erstatter alle referencer til document.all["id"] med kald til funktionen document.getElementById("id"), så er man allerede meget langt med at konvertere koden til standard W3C DOM baseret DHTML. Faktisk kan man som regel slippe fint af sted med at emulere document.getElementById() funktionen i IE4 med følgende kode:

if (document.all &&
    !document.getElementById)
{
  document.getElementById =
    function(e)
      {return document.all[e]};
}

Installere mange browsere på én PC

Det er ikke altid ligetil at teste sine websider i mange forskellige browsere og browser-versioner hvis man kun har én PC til rådighed. Normalt er det f.eks. ikke muligt at have flere forskellige versioner af Internet Explorer instaleret på én PC. Det er dog muligt at have IE4 installeret sammen med IE5 eller IE55 på 1. udgave af Win98. 1. udgave af Win98 bliver leveret med IE4, og ved efterfølgende installation af IE5 eller IE55 har man mulighed for at bibeholde IE4 installeret (Vælg "Custom Install" og se under "Advanced"). Bortset fra lige i dette tilfælde, så må man installere en bootmanager der booter forskellige versioner af Windows med hver sin version af IE installeret hvis man vil teste i flere forskellige versioner af IE på én og samme PC.

Man kan installere forskellige udgaver af Mozilla og Mozilla-baserede browsere (incl. Netscape 6.x) hvis man sørger for at de bruger hver deres profil. Man kan angive en default profil for den kaldte Mozilla-baserede browser med parameren "-P". Hvis jeg f.eks. ønsker at starte min Mozilla-browser med profilen "mozdefault", så kan det gøres med en kommando noget lignende:

"D:\sti\mozilla.exe" -P mozdefault

Hvis jeg ikke angiver en default profil og der er mere end én profil defineret, vil jeg blive bedt om at vælge profil hver gang jeg starter en Mozilla-baseret browser.

Fra Mozilla version 1.0 og browsere baseret derpå (Netscape 6.5?) vil det formodentlig være muligt at dele profil mellem flere browsere - Vil jeg tro i hvert fald, jeg ved det ikke med sikkerhed.