我使用的客户端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>
第一警报会弹出为“[对象的XMLDocument]”与Firefox代替“[对象]”像它的IE和Safari。 从我收集,这意味着Firefox没有没有产生JavaScript的HTML文件(或HTML DOM,不知道的措辞是什么)。 在Firefox第二类提醒将是“未定义”,但在IE和Safari它是“[对象]。
因此Firefox没有document.forms或document.anchors等等。我知道一些JavaScript仍然可以工作,喜欢的document.getElementById,但是恐怕像阿贾克斯更先进的东西都不行属性格式,如果document.forms之类的东西不存在。
对此有一个变通? 在我目前的项目,我重写一堆网页使用XSLT。 有很多javascipt的已经writen,如果它甚至有可能改变这一切利用有限的Firefox JavaScript是不是一个真正的选择。
非常感谢您的任何帮助。