2009-07-27 5 views
2

좋아요, 이전 게시물에서이 문제를 설명하는 진절머리 나는 직업을 보았습니다. 나는이 문제가 핵심 쟁점에서 벗어 났다고 생각한다. 다시 시도 할 것이다. Mea Culpa to 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 

을하지만 난 파이어 폭스 (3.0.1)에서 실행할 때, 난 여전히 경고를 얻을 수 있지만, jQuery를이 DOM에 단락을 삽입하지 않고, 난 그냥이 얻을 :뿐만 아니라 예상대로 :

Hi 

내가 방법 = "HTML" (경고와 함께) 잘 작동, 내가 얻을 수있는 스타일 시트를 변경하는 경우 :

Hi 

Hello 

왜 파이어 폭스가 jQu를 실행하지 않습니다 XHTML 문서와 함께 ery? 이 문제에 대해 경험이있는 사람이 있습니까?

편집 : 추가 정보

내가 성공적으로 문서에 파이어 폭스에서이 방법 (방법 = "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는 XHTML을 XML로 지원하지 않기 때문에 정상적으로 작동합니다. 물론 "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

관련 문제