Tous les 2 jours a peu pres, quelqu'un la ramene en disant que konqueror supporte Acid2, et que donc par conséquence il a un excellent support des standards, pas comme firefox par exemple... Je ne reviendrais pas sur le fait que passer Acid2 ne veut strictement rien dire sur le support CSS des navigateurs qui y parviennent, mais plutot sur un autre point de détail: ya pas que le CSS dans la vie ! (nota: le pire dans l'histoire étant que Acid 2 ne concerne pas uniquement CSS, c'est un peu un fourre tout, meme si les parties interessantes sont surtout au niveau du CSS)

Par exemple, un point qui devrait interesser de plus en plus de gens en ce moment, avec tout ce buzz autour de du Web2, c'est le support DOM et EcmaScript. En l'occurence, je vais vous parler d'un truc génial que personne n'utilise sur le web, puisque IE ne le supporte pas: le Document Object Model Traversal. Sous ce nom se cache des interfaces pour naviguer dans un document, et executer diverses actions sur une ou plusieurs parties de celui-ci.

Voila donc un petit script tres simple, qui parcourt le document à la recherche de Nodes tres précises. J'utilise une variante de ce script dans ma nouvelle version de la DLFPToolbar, et cela accelere grandement les choses (encore plus dans une version que je n'ai pas encore publié mais sur laquelle je reviendrais plus tard de toutes manieres, parceque elle montre tout l'interet de passer par un Treewalker plutot que par un systeme parsant a la main):

window.onload = beamMeUp;

function beamMeUp()
{
	function acceptNode(node)
	{
		if (node.hasAttribute("class"))
		{
			if (node.className == "ok")
				return NodeFilter.FILTER_ACCEPT;
		}
		return NodeFilter.FILTER_SKIP;
	}
	
	var treeWalker = document.createTreeWalker(document.body, 
	                                           NodeFilter.SHOW_ELEMENT,
	                                           acceptNode,
	                                           false);
	if (treeWalker)
	{
		var node = treeWalker.nextNode();
		
		while (node)
		{
			alert(node);
			node = treeWalker.nextNode();
		}
	}
}

Grosso Modo, ca parcourt le document a la recherche d'elements avec class="ok", et ca alert() a chaque fois que ca en trouve un. En effet, vous l'aurez compris en regardant la spec citée plus haut, la fonction acceptNode() est un filtre, appellé automatiquement, de sorte que lorsque je parcourt les Nodes de mon Treewalker, je ne vois que les Nodes pour lesquelles ma fonction a renvoyé NodeFilter.FILTER_ACCEPT.

Enfin ca, c'est la théorie.

Dans Opera, Safari, Firefox, ca marche tres bien. Dans la derniere version de Konqueror, ca alert() a chaque coup, la fonction acceptNode() n'est jamais appellée. Si quelqu'un a une solution, je veux bien l'entendre, je n'ai pas tres envie de rappeller ma fonction a la main a chaque fois. Remarquez, ya du mieux, avant, toute mention d'un Treewalker lui donnait des boutons (et déjà à l'époque c'était moi qui avait trouvé le bug, je me demande si ya d'autres gens qui s'interessent un peu au support DOM de konqueror :-)

PS: J'ai pour le moment la flemme de reporter le bug, pour ceux qui voudraient le faire avant que je finisse par créer un compte sur le bugzilla de KDE, j'ai mis mon testcase en ligne.