クライアント側の xslt を使用して xml ファイルを xhtml に変換しています。いくつかのハードルがありましたが、これを除いてすべて通過することができました。
問題は、このような単純なxmlファイルがある場合です
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="./jsInFf.xsl"?>
<root>hello</root>
このような単純なxslでxhtmlに変換します
<?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>
最初のアラートは、IE や safari の場合のように "[object]" ではなく、firefox で "[object XMLDocument]" としてポップアップします。私が収集したことから、これは、Firefox が javascript html ドキュメント (または html dom、文言がわからない) を生成しないことを意味します。firefox の 2 番目のアラートは「undefined」ですが、IE と safari では「[object].
そのため、Firefox には document.forms や document.anchors などはありません。document.getElementById のように、いくつかの JavaScript が引き続き機能することはわかっていますが、document.forms などが機能する場合、ajax などのより高度な機能は適切に機能しないのではないかと心配しています。存在しない。
これに対する回避策はありますか? 私の現在のプロジェクトでは、xslt を使用するように一連のページを書き直しています。すでに多くの javascipt が作成されており、制限付きの firefox javascript を使用するようにすべてを変更することは、たとえ可能であったとしても実際にはオプションではありません。
助けてくれてありがとう。