hvis du har 100% kontrol over klienterne, så er det jo ikke så forfærdelig ... jeg ville stadig holde mig til serverside. du kan jo gøre noget ála dette:
*********
menu.xml
*********
<?xml version="1.0" encoding="UTF-16"?>
<menu>
<item>Menu 1</item>
<item>Menu 2</item>
<item>Menu 3</item>
</menu>
**********
menu.xsl
**********
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform" xmlns:fo="
http://www.w3.org/1999/XSL/Format"> <xsl:template match="/">
<html>
<head>
<title/>
<style type="text/css">
.inactive
{
background-color:red;
}
.active
{
background-color:green;
}
</style>
<script language="JavaScript" type="text/javascript">
<xsl:comment>
<![CDATA[
var strPage = null;
var strQueryString = document.location.search.substring(1);
function setPage()
{
if( strQueryString.length > 0 )
{
var arrParams = strQueryString.split( "&" );
for( i = 0; i < arrParams.length; i++ )
{
if( arrParams[ i ].toLowerCase().indexOf( "page" ) > -1 )
{
strPage = arrParams[ i ].split( "=" )[1];
break;
}
}
}
else
{
strPage = 1;
}
if( strPage )
{
var objTD = document.getElementById( "td" + strPage );
if( objTD )
{
objTD.style.className = "active";
}
}
}
window.onload = setPage;
]]>
</xsl:comment>
</script>
</head>
<body>
<table>
<tr>
<xsl:apply-templates/>
</tr>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<td>
<xsl:attribute name="id">td<xsl:value-of select="position()"/></xsl:attribute>
<xsl:attribute name="class">inactive</xsl:attribute>
<a>
<xsl:attribute name="href">?page=<xsl:value-of select="position()"/></xsl:attribute>
<xsl:value-of select="." />
</a>
</td>
</xsl:template>
</xsl:stylesheet>
/nute