2011-10-17 1 views
2

IE에서 본문에 추가 된 HTML5 작업에 문제가 있습니다. Modernizr에 포함 된 HTML 5 Shiv를 사용하고 있지만 다른 HTML 5 라이브러리와 동일한 문제입니다.본문에 HTML5 shiv 및 요소가 추가 된 문제

body에 직접 추가 된 HTML 5 요소를 제외한 모든 요소에서 올바르게 작동합니다. shiv없이 012 QLIE (예기치 않은 메서드 또는 속성 액세스 호출)를 사용하는 것과 같은 오류 메시지가 나타납니다. 이것은 Modernizr 또는 html5.js가있는 IE (7, 8)의 예입니다.

$(document).ready(function() 
{ 
    $('body').append('<nav class="test"></nav>'); 
    $('.test').html("Testing HTML 5"); 
}); 

왜 이런 일이 발생할 수있는 아이디어가 있습니까?

답변

3

조 바틀렛은 this에 문제가 발생했습니다. 그는 문제를 설명하고 그것을위한 해결책 (HTML5 innerShiv)을 보여줍니다.

IE8에 대한 솔루션 아래에 삽입하는 것입니다 자신의 script 이미, 그것은 작동하지 않았다

$("body").append(innerShiv("<nav class=\"test\"></nav>")); 
+0

굉장합니다. 내 쉬브를 우연히 발견했지만 내 문제에 적용되지 않는다고 생각했습니다. 분명히 그랬고 훌륭하게 작동했습니다. – Daff

+1

@Daff : FYI : 새로 출시 된 JQuery 1.7에는 IE 용 innerShiv 해킹이 포함되어 있습니다. – Andreas

0

제 생각에는 HTML5 shiv가 페이지로드시 DOM에 HTML5 요소를 추가하고 그 후에 DOM 요소를 추가하면 페이지로드시 페이지로드시 IE 엔진이이를 인식하지 못합니다. shiv가 적용되었습니다.

여기서 가장 좋은 방법은 다른 것입니까 document.createElement("nav");?

+0

는 시도는 DOM에 삽입하기 전에 innerShiv(...)의 모든 HTML5 컨텐츠를 포장보다. DOM 페이지가 준비되고 Shived 된 후에 동적으로 HTML 5 요소를 추가하면 잘 작동합니다. 시체에 추가 할 때가 아닙니다. – Daff