2009-07-27 7 views
2

さて、私は以前の投稿でこの問題を説明するのは間違った仕事でした。私は議論が核心問題から横行してしまったと思うので、もう一度やり直すつもりです。 Mea Culpa~Elzo Valugi上記糸について。十分なシンプルFirefoxがXHTML出力のためにjQueryを実行していない

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="wtf.xsl"?> 
<Paragraphs> 
    <Paragraph>Hi</Paragraph> 
</Paragraphs> 

私はXMLファイルを持っています。私はまた、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> 

なく、少なくとも最後に、私はin toto(スタイルシート内のスクリプトタグからwtf.jsを、)次のjQueryあります

$(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文書でうまい?誰にもこの問題の経験はありますか?

EDIT:ADDITIONAL INFO

私が正常に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を使用してXHTMLで動作しない "Hello"フラグメント(jquery.1.3.2.js 911行)を追加しているように見えます。

+0

@Alohci:Huzzah!進捗!さて、jQueryのステートメントを代わりに使用しますか?これはjQueryでも可能ですか?数字はIE6で動作します。愚かなクラップブラウザ... –

+0

率直に言って、私は、サポートされているレベルのjQueryがXHTMLのために持っているものはわかりません。私は、あなたがjQueryのメーリングリストで尋ねることをお勧めします。IEの場合、IEはXHTMLをXMLとしてサポートしていないため動作しますが、通常のHTMLとして扱われます。もちろん、「innerHTML」はうまく動作します。 – Alohci

+0

私はこれを早期に回答していました。ごめんなさい。 innerHTMLビットは、なぜドキュメントフラグメント内にノードを作成するときにappend()メソッドをうまく使用できるかを説明していません(EDITを参照)。 –

0

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

を使用してみてくださいそれがこの問題ですか? http://dev.jquery.com/ticket/4895 xsl:output method="xml"の代わりにxsl:output method="html"を使用することをお勧めします。

+0

Firefoxでapplication/xmlドキュメントを動作させるために必要なものを見つけました:http://ajaxandxml.blogspot.com/2009/03/firefox-xslt-errors.html タグを修正して問題を解決しました。 – solsson

関連する問題