Почему мой IE9 не поддерживает canvas? - PullRequest
25 голосов
/ 30 мая 2011

DiveIntoHTML5 Canvas утверждает, что IE9 поддерживает canvas.

Однако, когда я попытался сделать canvas на IE9, он не работает:

Объект не работаетНе поддерживает свойство или метод getContext

Я использую IE9.0.8112.16421:

enter image description here

Это код:

<html>
<head>

</head>
<body style="background:black;margin:0;padding:0;">
<canvas id="canvas" style="background:white;width:100%;height:100%;">noob</canvas>
<script>
var img=new Image();
img.onload=function(){
  var c=document.getElementById('canvas');
  var ctx = c.getContext('2d');
  var left,top;
  left=top=0;
  ctx.drawImage(img,left,top,20,20);
  var f=function(){
    left+=1;
    top+=1;
    c.width=c.width;
    ctx.drawImage(img,left,top,20,20);
  };
  setInterval(f,20);
};
img.src="http://a.wearehugh.com/dih5/aoc-h.png";
</script>
</body>
</html>

Ответы [ 6 ]

52 голосов
/ 30 мая 2011

Две вещи:

Тег <canvas> должен иметь соответствующий закрывающий тег </canvas>.В то время как некоторые браузеры позволят вам обойтись только открывающим тегом, другие (например, Firefox и, возможно, IE) этого не сделают.

Кроме того, IE9 требует, чтобы вы объявили HTML5-тип документа для использования тега canvas.Вы можете сделать это, поместив <!DOCTYPE html> вверху вашего кода.

14 голосов
/ 20 марта 2012

Если IE9 работает в режиме совместимости, тег canvas не будет распознан, даже если вы используете тег HTML5 DOCTYPE. По крайней мере, это был мой опыт.

Проверьте, работает ли IE9 в режиме совместимости, что может быть в случае, если сайт находится в интрасети.

6 голосов
/ 01 марта 2012

<!DOCTYPE html> должно быть первым на вашей странице. У меня был скрипт перед тегом, и он продолжал давать мне ту же ошибку. Это происходит только в IE9, Chrome и Firefox работают даже со скриптом перед тегом doctype.

1 голос
/ 05 февраля 2013

при использовании IE10 в представлении совместимости проверьте версию совместимости IE. Введите F12 (откройте Инструменты разработчика) и проверьте соответствующую версию IE (например, IE9), которую нужно проверить, и браузер. будет работать прямо под этой версией.

1 голос
/ 05 августа 2012

Запуск IE 9.0.8112.16421.Элемент Canvas изначально не будет работать, но если я нажму F12, чтобы вызвать devtools, то обновлюсь, он начнет работать.Обычное обновление без окна devtools не будет работать.Может быть проблема инициализации JS, так как холст работал до того, как я переместил код рисования холста в его собственный файл .js.Прекрасно работает в Chrome / Firefox / Safari.

0 голосов
/ 22 мая 2014

ребята!

Проверьте Explorer Canvas в Google Code: https://code.google.com/p/explorercanvas/

Надеюсь, это поможет!

Tze

...