Client-side script en DOM: HTML-alternatieven voor client-side scripts

Browsers die geen client-side scripts ondersteunen, kunnen alternatieve inhoud tonen. Deze inhoud kan worden opgenomen in het noscript element. Hier moet voorzichting mee worden omgegaan.

Wanneer client-side script als uitbreiding gebruiken?

  • Meestal passen webontwikkelaars scripts toe op HTML-elementen in de pagina die wel zichtbaar blijven als ze niet worden ondersteund, maar niet blijken te werken. Bij een uitklapbaar navigatiemenu, zou dit bijvoorbeeld resulteren in twee menu’s: één dat niet en één dat wél werkt.
  • Als client-side scripts niet worden ondersteund, zullen sommige functionaliteiten door de ene browser wél en door de andere niet worden uitgevoerd. Het kan gebeuren dat een browser die de functionaliteit niet kan uitvoeren, evenmin de inhoud van het noscript toont. Dit is het geval bij bijvoorbeeld (oude) browsers die geen ondersteuning hebben voor DOM (Document Object Model).

In beide gevallen is het beter om uit te gaan van client-side scripts als uitbreiding op HTML-basisfunctionaliteit in plaats van als alternatief.

Zo kan een eenvoudige tekstlink worden uitgebreid met een script dat ervoor zorgt dat de link automatisch in een nieuw venster wordt geopend. Op deze manier functioneert de link altijd; alleen als de browser client-side scripts ondersteunt, opent de link een nieuw venster. Het script is daarmee een uitbreiding op de basisfunctionaliteit. Zie voor details Client-side script als uitbreiding op een link.

Beperkte ondersteuning

Dergelijke scripts kunnen zodanig worden geschreven, dat het script zichzelf annuleert wanneer ondersteuning voor één of meerdere functies ontbreekt. De bezoeker kan gewoon de HTML-basisfunctionaliteit blijven gebruiken, zelfs als zijn browser slechts beperkt client-side scripts ondersteunt. Degelijke scripts zijn eenvoudig te herkennen, doordat eerst wordt gecontroleerd of de functies die worden aangeroepen door de JavaScript-versie van de browser worden ondersteund.

Een voorbeeld (Javascript)

if (document.getElementById && document.getElementsByTagName && document.createElement) {
  function nameOfFunction() {
  [...]
  }
}

Inhoudsopgave: Client-side script en DOM

  1. Introductie
  2. Het optionele karakter van client-side scripts
    1. HTML alternatieven voor client-side scripts
    2. Server-side scripts als alternatief
  3. Document Object Model


 Webrichtlijnen versie 1.3, november 2007.