好的,我在上一篇文章中描述了這個問題,做了一件糟糕的工作。我認爲討論的焦點在於核心問題 - 所以我會再試一次。 Mea Culpa到Elzo Valugi關於上述線程。Firefox未運行jQuery for XHTML輸出
我有一個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中執行此操作時,我收到警報'Hiya!'以及預期:
Hi
Hello
,但是當我在Firefox(3.0.1)運行它,我仍然得到警報,但jQuery的不插入段落到DOM,我只是得到這樣的:
Hi
如果我改變了樣式表方法= 「HTML」它工作正常,我也得到(與警報一起):
Hi
Hello
爲什麼沒有Firefox的運行jQu一個XHTML文檔?有沒有人有這個問題的經驗?
編輯:附加信息
我可以成功地將元素插入到文檔在Firefox這種方式(方法=「XML」):
var frag = document.createDocumentFragment();
var p = document.createElement('p');
p.appendChild(document.createTextNode('Ipsum Lorem'));
frag.appendChild(p);
$('body').append(frag);
,但我正在與一個類似的問題.remove()方法。
看來越來越多的Firefox不會從jQuery可以涉及到的XML構建DOM。
@Alohci:Huzzah!進展!現在...你會用什麼jQuery語句作爲替代方案?這甚至可能在jQuery中?它會在IE6中起作用。愚蠢的廢話瀏覽器... – 2009-07-27 23:55:43
坦率地說,我不知道jQuery對XHTML的支持程度。我建議你問一個jQuery郵件列表。至於IE,它的工作原理是因爲IE不支持XHTML作爲XML,它只是將其視爲普通的HTML,當然,「innerHTML」工作得很好。 – Alohci 2009-07-28 00:08:56