Archief van June 2006

WK, 30 graden

11-06-2006 om 15:00 uur door Wieland

TV op het balkon

Bookmarklet: Toon links

11-06-2006 om 11:42 uur door Wieland

Internetverslaafd of niet, ik houd er niet van om lange teksten van mijn beeldscherm te lezen - en zeker niet als het een beknopt naslagwerk is. Maar toen ik dit artikel naar mijn printer wilde sturen, ging er veel functionaliteit verloren: de reuzehandige lijst met links aan het einde veranderde bijvoorbeeld in een nutteloze reeks titels van websites zonder bijbehorend adres. Zoiets schreeuwt om een oplossing.

Gelukkig is die eigenlijk helemaal niet zo ingewikkeld. Met een kort stukje javascript zijn al die links namelijk zichtbaar te maken. En als je daar dan een bookmarklet van maakt, hoef je die enkel aan te klikken voor je op Ctrl-P drukt.

Aldus geschiedde. Sleep de volgende link naar je Bookmarks Toolbar: Toon links. Wil je daarna een pagina met links printen, klik dan voortaan eerst op deze knop. Slechts getest in Firefox (1.5, Linux), maar zou onder andere moderne browsers ook moeten werken. Geen garanties of aansprakelijkheid, evengoed.
Voor wie het zien wil: hier de broncode in leesbare vorm. Commentaar is welkom.

DOM, DOM, DOM...

06-06-2006 om 15:32 uur door Wieland

Debuggen van javascript is een hel. De Javascript Console van Firefox is prima te gebruiken en geeft informatieve meldingen, maar je komt juist de meeste problemen tegen als je je scripts aan Internet Explorer voert. En laat die browser nou simpelweg zwijgen als het graf als-ie code tegenkomt die hij niet snapt: sinds XP SP2 doet de ingebouwde debugger het niet meer. Dus was het door het ouderwets uit-commenten van loops en losse regeltjes dat ik ontdekte dat mijn array in IE vol met null-waarden zat. Een Googletje leerde dat IE alleen object.className ondersteunt, en geen object.getAttribute("class"). So much voor consistente toepassing van DOM-methodes. Affijn, het mag van het W3C, en Firefox en Opera snappen het ook, dus dat probleem is opgelost.

Ook irritant: IE converteert relatieve naar absolute URI's. Dus object.getAttribute("href") levert niet de tekstwaarde van het href-attribuut op ("example.html"), maar het volledige adres ("http://www.example.com/example.html"), ook als die helemaal niet in je code staat. Een extra parameter (object.getAttribute("href",2)) lost dat op.

Dat u even weet waar ik het toch zo druk mee heb.