好吧,我在上一篇文章中描述这个问题的时候做得很糟糕。我认为讨论偏离了核心问题,所以我要再试一次。
Mea Culpa
到
埃尔佐·瓦卢吉
关于上述线程。
我有一个XML文件:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="wtf.xsl"?>
<Paragraphs>
<Paragraph>Hi</Paragraph>
</Paragraphs>
很简单。我还有一个样式表来创建XHTML输出:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
omit-xml-declaration="yes"/>
<xsl:template match="/*">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>FF-JS-XHTML WTF</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="wtf.js"></script>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="Paragraph">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
</xsl:stylesheet>
最后但并非最不重要的一点是,我有以下jQuery
in toto
(wtf.js,来自样式表中的脚本标记):
$(function() {
alert('Hiya!');
$('<p>Hello</p>').appendTo('body');
});
非常简单,但足以进行演示。当我在Internet Explorer中运行此命令时,会收到警报“你好!”以及预期的:
Hi
Hello
Hi
如果我将样式表更改为
method=“html”
它工作正常,我(与警报一起)得到:
你好
为什么Firefox不使用XHTML文档运行jQuery?有人有过这个问题的经验吗?
在Firefox中,我可以通过这种方式成功地将元素插入文档(method=“xml”):
var frag = document.createDocumentFragment();
var p = document.createElement('p');
p.appendChild(document.createTextNode('Ipsum Lorem'));
frag.appendChild(p);
$('body').append(frag);
但我遇到了一个类似的问题
.删除()
方法。
Firefox似乎越来越不从jQuery可以关联的XML或类似的XML构建DOM。