Active channels
Introductie
et de lancering van versie 4 van MSIE werd het mogelijk om de inhoud van een webpagina te koppelen aan een zogenaamd active channel. In feite is een channel niet meer dan een link die op vaste tijden de inhoud van één of meer webpagina's ophaalt. De lezer klikt op het icoontje, en presto, alles wat nodig is voor het kanaal wordt op de harde schijf gezet. Dit wordt Push genoemd.
Een succes is het nooit geworden. Latere versies van MSIE ondersteunen het nog wel, maar zonder het van de daken te schreeuwen.
Wat is er nodig voor een kanaal?
Een active channel maken is niet moeilijk. De achtergronden zijn door Microsoft op een rijtje gezet op een pagina over het channel Definition Format.
Voor een channel zijn drie stappen nodig:
- een tekstbestand met de extensie
*.cdf, het zogenaamde Channel Definition Format; - drie plaatjes, waarvan de afmetingen vaststaan;
- een simpel JavaScriptje om er voor te zorgen dat alleen bezoekers met MSIE 4 of hoger de mogelijkheid te zien krijgen om een kanaal te openen. Andere browsers kunnen er namelijk niks mee.
Het channel bestand
In het tekstbestand staat alle informatie. Het is een ASCII-bestand, waarin gebruik wordt gemaakt van XML. Deze taal lijkt op HTML, maar is veel flexibeler, omdat je zelf codes kunt definiëren. Om de browser zich niet te laten verslikken moet bovenaan het bestand bovendien de Document type Definition (DTD) staan:
<?XML version="1.0"?> <!DOCTYPE channel SYSTEM"http://www.w3c.org/channel.dtd">
Nu kun je het eigenlijke kanaal maken:
<channel href="http://www.xs4all.nl/ ~werksman/ webmees/index.html"> <title>De Webmees van Hans Werksman</title> <abstract> Wat is HTML? Waar vind ik een editor? Hoe zit met auteursrecht? Het antwoord is slechts een klik verwijderd. Vlieg binnen. </abstract>
Zoals je ziet wordt een link gelegd met de startpagina van De Webmees. Dit moet een link zijn met het bestand op de server. <title> geeft de naam van het kanaal aan. Gebruik <abstract> om een samenvatting van de pagina te geven.
Nu is het de beurt aan de drie plaatjes. Die zijn nodig voor de desktop. Let op: ze hebben verplichte afmetingen.
<logo href="http://www.xs4all.nl/~werksman/ webmees/channel/webmees_k.gif" style="ICON"/> <logo href="http://www.xs4all.nl/~werksman/ webmees/channel/webmees.gif" style="IMAGE"/> <logo href="http://www.xs4all.nl/~werksman/ webmees/channel/webmees_g.gif" style="IMAGE-WIDE"/>
Nu geef je hoe vaak het kanaal ververst moet worden. Je geeft een startdatum op en het tijdsinterval tussen twee aanvullingen. In mijn geval is dat eens per week:
<SCHEDulE STARTDATE="2003-01-27"> <INTERValtIME DAYS="7"/> </SCHEDulE>
Nu geef je de pagina's op die moeten opgehaald. Die doe je met <channel>, <title> en <ITEM>. In mijn geval worden drie pagina's opgehaald.
<title>De Webmees van Hans Werksman</title> <item href="http://www.xs4all.nl/~werksman/ webmees/index.html"> <abstract>Alles over het maken van webpagina's. Wekelijkse aanvulling. Tip van de week. </abstract> <title>De Webmees van Hans Werksman</title> </iTEM>
Deze syntax wordt herhaald voor elke pagina die deel uitmaakt van het active channel.
Sluit nu het kanaal af met:
</channel>
Sla het geheel op met de extensie *.cdf. Het kanaal staat hier als *.txt-bestand.
Maak op de gebruikelijke wijze een link:
<a href="webmees.cdf">Kanaal toevoegen</A>
Zoals gezegd werkt het uitsluitend met versie 4.x en hoger van de MSIE. Om te voorkomen dat andere bezoekers worden "lastig gevallen" met deze optie, kun je de link in een simpel JavaScript stoppen.
Drie plaatjes
Om het geheel er wat gelikter uit te laten zien, zijn drie plaatjes nodig. De afmetingen (breedte x hoogte) van deze plaatjes staan vast:
- een icon: 16 x 16 pixels
- een plaatje voor de channel bar: 80 x 32 pixels
- een plaatje voor de channel bar in MSIE: 194 x 32 pixels
JavaScript voor tonen channel
Een simpel scriptje volstaat om de link met het channel afhankelijk van de gebruikte browser te tonen. Het heeft natuurlijk geen zin om de mogelijkheid aan te bieden om een channel te openen als dat niet door de browser in kwestie wordt ondersteund.
Resultaat van het script:

