J'utilise xslt côté client pour transformer des fichiers xml en xhtml. Il y a eu quelques obstacles mais j'ai réussi à les dépasser tous sauf à ça.côté client xslt avec javascript dans firefox
Le problème est que lorsque j'ai un simple fichier xml comme celui-ci
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="./jsInFf.xsl"?>
<root>hello</root>
et le transformer en xhtml avec un simple xsl comme celui-ci
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml"
version="1.0"
encoding="ISO-8859-1"
indent="yes"
omit-xml-declaration="no"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>a title</title>
<script type="text/javascript">
alert(document);
alert(document.anchors);
</script>
</head>
<body>
<xsl:value-of select="." /> world
</body>
</html>
</xsl:template>
</xsl:stylesheet>
la première alerte pop-up comme "[object XMLDocument]" avec firefox au lieu de "[object]" comme pour IE et safari. D'après ce que je comprends, cela signifie que firefox ne produit pas de document javascript html (ou html dom, je ne suis pas sûr du libellé). La seconde alerte dans firefox sera "indéfinie" mais dans IE et safari elle est "[objet]
Donc dans firefox il n'y a pas document.forms ou document.anchors etc. Je sais que le javascript fonctionnera toujours, comme document.getElementById, mais j'ai peur que des choses plus avancées comme ajax ne fonctionnent pas si document.forms et autres n'existent pas
Y a-t-il une solution de rechange pour cela? tas de pages à utiliser xslt.Il ya beaucoup de javascipt déjà écrit et en changeant tout pour utiliser le firefox javascript limitée n'est pas vraiment une option si elle est encore possible
Merci beaucoup pour toute aide
oh ... s'il vous plaît ne pas ... comment pouvez-vous vérifier que le code HTML généré est valide? pourquoi le faire du côté client? (en plus de la performance ...) – elcuco
"Sur mon projet actuel, je suis en train de réécrire un tas de pages pour utiliser xslt." Pourquoi? –
Je fais le côté client des transformations pour la performance. Le html et les transformations ne sont pas terriblement compliqués donc tout devrait valider.Pour les anciens navigateurs sans support pour xslt et pour google bots je ferai le côté serveur de transformation. –