2009-07-27 49 views
2

好的,我在上一篇文章中描述了這個問題,做了一件糟糕的工作。我認爲討論的焦點在於核心問題 - 所以我會再試一次。 Mea CulpaElzo 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。

回答

1

我對jQuery不是很熟悉,但是在我看來,jQuery使用innerHTML來添加「Hello」片段(jquery.1.3.2.js第911行),它不會與XHTML一起使用。

+0

@Alohci:Huzzah!進展!現在...你會用什麼jQuery語句作爲替代方案?這甚至可能在jQuery中?它會在IE6中起作用。愚蠢的廢話瀏覽器... – 2009-07-27 23:55:43

+0

坦率地說,我不知道jQuery對XHTML的支持程度。我建議你問一個jQuery郵件列表。至於IE,它的工作原理是因爲IE不支持XHTML作爲XML,它只是將其視爲普通的HTML,當然,「innerHTML」工作得很好。 – Alohci 2009-07-28 00:08:56

0

使用try

$.("body").text("<p>Hello</p>");