구문 분석

Internet Explorer 10 및 JavaScript를 사용하는 Windows 스토어 앱은 HTML5 구문 분석 알고리즘을 완전히 지원하며, 이 브라우저 간에 동일하게 HTML "작동"하도록 하기 위해 이전 릴리스에서 시작된 노력을 계속 이어갑니다.이러한 노력에는 HTML의 SVG(Scalable Vector Graphics) 지원, HTML5 의미 중심 요소 지원, 알 수 없는 요소의 구조 유지, 공백 처리 개선 등이 포함됩니다.

HTML5 구문 분석 규칙

HTML 파서와 관련하여 Windows Internet Explorer 팀은 최신 브라우저에서 모든 HTML이 동일하게 구문 분석되도록 하기 위해 노력해 왔습니다. 이 작업이 가능한 것은 HTML5가 마지막 극한 사례와 오류 상태에 이르기까지 HTML 구문 분석 규칙을 완전히 정의하는 최초의 HTML 버전이기 때문입니다. 태그가 잘못된 경우에도 HTML5에서 구문 분석 방법을 정의하며 Internet Explorer 10은 이러한 규칙을 따릅니다. 다음 구문 분석 예제는 이러한 고급 기능을 통해 일부 사례가 해결되는 방식을 보여 줍니다.

HTMLDOM(문서 개체 모델)(HTML5 + Internet Explorer 10)DOM(Windows Internet Explorer 9)

<b>1<i>2</b>

|- <b>

|- "1"

|- <i>

|- "2"

|- <b>

|- "1"

|- <i>

|- "2"

|- <i>

<p>Test 1

<object>

<p>Test 2

</object>

|- <p>

|- "Test 1\n"

|- <object>

|- "\n "

|- <p>

|- "Test 2\n"

|- <p>

|- "Test 1\n"

|- <object>

|- "\n "

|- <p>

|- "Test 2\n"

 

상호 운용성이 있는 innerHTML

이러한 고급 기능은 innerHTML에도 적용됩니다. 이제 다음과 같은 코드 패턴이 Internet Explorer 10에서 예상대로 작동합니다.


var select = document.createElement("select");
select.innerHTML = "<option>one</option><option>two</option>";
var table = document.createElement("table");
table.innerHTML = "<tr><td>one</td><td>two</td></tr>";


개발자를 위한 오류 보고 기능 개선

HTML5에서는 태그가 일관되게 구문 분석되지만 개발자는 처음부터 유효한 태그를 작성하려고 노력해야 합니다. 유효한 태그를 작성하면 사이트가 예상대로 작동하며 이전 브라우저와 호환될 가능성이 커집니다.

개발자가 유효한 태그를 일관되게 작성하도록 돕기 위해 이제 Internet Explorer 10에서는 다음 스크린샷과 같이 F12 개발자 도구를 통해 HTML 구문 분석 오류를 보고합니다.

겹치는 태그를 나타내는 오류를 표시하는 F12 개발자 그림

참고  JavaScript를 사용하는 Windows 스토어 앱에서는 F12 개발자 도구를 사용할 수 없습니다.

레거시 기능 제거됨

이전 Internet Explorer 버전의 일부 기능은 HTML5 구문 분석과 호환되지 않으므로 Internet Explorer 10의 IE10 모드에서 제거되었습니다. 이 섹션의 레거시 기능을 사용하는 사이트는 레거시 호환 모드에서 실행할 경우 계속 작동합니다. 이렇게 하면 사이트 개발자가 업데이트할 시간이나 리소스가 없는 경우에도 현재 사이트가 Internet Explorer 10에서 계속 작동합니다. 호환 모드에 대한 자세한 내용은 MSDN의 문서 호환성 정의(영문)를 참조하세요.

조건부 설명

아래 표시된 것처럼 조건부 설명을 계속 사용할 수 있지만, 조건부 설명은 이전 Internet Explorer 버전만 대상으로 합니다. 최신 브라우저를 구분해야 하는 경우 기능 검색을 대신 사용합니다.


<!--[if IE]>
This content is ignored in Internet Explorer 10 and other browsers.
In older versions of Internet Explorer, this renders as part of the page.
<![endif]-->


요소 동작

Microsoft Internet Explorer 5.5에서 추가된 아래와 같은 요소 동작은 Internet Explorer 10의 IE10 모드에서 더 이상 인식되지 않습니다.


<html xmlns:my>
<?import namespace="my" implementation="my.htc">
<my:element>
This parses as an unknown element in Internet Explorer 10 and other browsers.
In older versions of Internet Explorer, this markup binds to "my.htc".
</my:element>
</html>


XML 데이터 저장소(island)

Microsoft Internet Explorer 5에서 추가된 아래와 같은 XML 데이터 저장소(island)는 Internet Explorer 10의 IE10 모드에서 더 이상 XML로 구문 분석되지 않습니다.


<xml>
This parses as <b>HTML</b> in Internet Explorer 10 and other browsers.
In older versions of Internet Explorer, it parses as XML.
</xml>


IEBlog 게시물

IE10의 HTML5 구문 분석
IE9의 상호 운용성 있는 HTML 구문 분석

사양

HTML5: 섹션 8.2

 

 

표시:
© 2014 Microsoft. All rights reserved.