2012-06-15 3 views
0

$("html").html()을 사용하여 HTML 코드를 가져 오려고하면 자바 스크립트를 통해 동적으로 생성 된 웹 페이지가 있습니다. 나는 모든 것을 얻는다. 그리고 그것은 멋지다. 유일한 문제는 빈 태그 (예 : <link />, <input />, <img />, <br /> )가 원하는대로 표시되지 않는 것입니다.적절한 형식으로 html 소스 가져 오기

나는 그들에게 다음과 같이 제대로 밀폐 형식으로 표시 할 -

<input type="text" name="nm" /> 

하지만 그들은

<input type="text" name="nm"> 

로 표시 얻고있다 즉, 폐문하지

내가 HTML을 만들려면 이 문자열의 자바 객체이지만 잘못된 html과 같은 예외가 발생합니다.

모든 솔루션?

+0

가능한 복제본 [Jquery html()은 모든 xhtml을 html 표준으로 변환 할 수 없습니다] (http://stackoverflow.com/questions/10606627/jquery-html-cannot-convert-all-xhtml-to-html-standard) ? – fcalderan

+0

http://api.jquery.com/html/ 참조 : '이 메서드는 브라우저의 innerHTML 속성을 사용합니다. 일부 브라우저는 원본 문서의 HTML 소스를 정확히 복제하는 HTML을 반환하지 않을 수 있습니다. ' – Codesleuth

답변

1

나는 그들이 XHTML 만 "적절한"의

아래로 제대로 밀폐 형식으로 표시 할. 그것은 단지 HTML에서 용인됩니다. 이 올바르게 처리 된 경우 정품 XHTML 문서 인 이 유효한 XML을 반환해야합니다. XHTML 태그 스프 (text/html)를 사용하거나 HTML 형식 (HTML4 strict, HTML4 transitional, HTML5, doctype이 전혀 없음)을 사용하는 경우 브라우저 을 사용하는 경우은 HTML을 반환해야합니다 (불필요한 솔리드가 없음). More : http://www.w3.org/TR/html5/embedded-content-0.html#dom-innerhtml

어쨌든 이것은 jQuery가 아니라 브라우저에 달려 있습니다. 필자가 알고있는 한 특정 변종을 요구할 수는 없습니다 (doctype을 지정하고 올바른 콘텐츠 유형으로 게재하는 것 외에는 아직까지는 오늘날 브라우저에서 충분하지 않을 수 있습니다).

+0

이 문자열의 java에서 html 객체를 만들고 싶지만 잘못된 html과 같은 예외가 발생합니다. – Ashwin

+1

@MotaBOS : jQuery를 사용하여 DOM 구조를 HTML 문자열로 직렬화 한 다음이 문자열을 Java 프로그램에 전달하면 오류가 발생하여 형식이 잘못되었다고 주장합니다. HTML에는''에 대한 잘못된 형식은 없습니다. 사용중인 Java 파서가 XHTML 모드가 아닌 HTML 모드에 있는지 확인해야하는 것 같습니다. 그것이 없다면, 아마 다른 것을 보라 (JSoup가 인기있다). 또는 슬프게도, 포스트 프로세스 또는 자바 스크립트에서 자체 직렬화를 수행하십시오 (나쁜 것으로 들리지만 실제로 그렇게 어려운 것은 아니며 재귀 적 강하 기능과 올바른 이스케이프 처리 ...). –

+0

고마워, 그건 나에게 충분한 도움이야. – Ashwin

관련 문제