3

일부 캔버스 요소를 그리려고하고 있는데, 물론 Internet Explorer에서 작동해야합니다. 그래서 일부 검색을하고 explorercanvas를 사용하여 해당 기능을 사용했습니다. 그러나 나는 IE가 어떤 이유로 초기 페이지가로드 된 후에 추가 된 캔버스 요소에 만족하지 않는다는 것을 발견했습니다.Internet Explorer의 Canvas 요소가 런타임에 추가되지 않았습니다.

아래 예제는 페이지의 HTML에있는 캔버스 요소와 DOM 준비에 추가 된 캔버스 요소가 있습니다. 캔버스에 그려지는 스크립트는 스크립트가 실행되기 전에 있었던 요소에서만 작동합니다.

Linky

나는 무슨 일이 있었는지 알아 보려면 IE 디버거를 사용하여 시도 내가 볼, 그 HTML 캔버스에, $ (이) [0] DispHTMLGenericElement 반환하지만 런타임 캔버스가 DispHTMLUnknownElement을 반환 . 나 또한 document.getElementByID()를 사용해 보았는데 같은 일이 일어난다. IE가 캔버스 요소를 다루는 방법에있어 또 다른 괴짜입니까? 주위에 방법이 있습니까? 탐색기 캔버스에 대해 "지침"파일에서

답변

2

: 동적가는 getContext 방법이 없습니다 캔버스 요소를 생성 한 경우

은 요소에 추가됩니다. 작동 시키려면 G_vmlCanvasManager 객체에서 initElement를 호출해야합니다. 그것은

 var el = document.createElement('canvas'); 
    G_vmlCanvasManager.initElement(el); 
    var ctx = el.getContext('2d'); 

이잖아. 이제 Canvas 용 HTML5 사양을 참조로 사용할 수 있습니다.

+1

고마워요! 또한 Explorer Canvas의 "instructions"페이지에있는 주석을 읽으면서 $ ('')가 아닌 canvas를 추가 할 때 document.createElement를 사용해야한다는 것을 알게되었습니다. – EvilAmarant7x

관련 문제