2011-06-03 6 views
0

Я использовал элемент canvas для отображения карты с исправлениями, которые окрашены в соответствии со значениями, полученными из запроса MySQL, и записываются в массив javascript. Он отлично работает на моих двух компьютерах, в Firefox 4, IE 9 и Safari. Но когда я делал демо в школе, с IE 8 (может быть, это было бы проблемой) и Firefox 3.6 (должен работать), холст не был виден. Я не могу видеть, как он может даже быть отключен! Что делают ИТ-ребята в школе, и как я могу проверить ее и нарисовать обычную карту изображений?элемент холста, кажется, отключен

ответ

1

IE8 не поддерживает холст. Вы можете использовать excanvas для подражания.

Во-вторых, IIRC, браузеры не обязаны устанавливать ширину и высоту холста для любого значения. Вы можете попытаться установить атрибуты width и height.

UPD: Будет хорошо, если вы предоставите фрагмент своей страницы. Прежде чем вы это сделаете, некоторые идеи о том, как уменьшить проблему.

  • Убедитесь, что ваша страница доктайп устанавливается в <!doctype html>.

  • Убедитесь, что никаких сообщений о canvas не будучи не поддерживается (то есть текст поместить между <canvas> и </canvas>) отображаются (это не должно произойти с Firefox 3.6, но тем не менее).

  • style='border:solid;' для вашего элемента холста. Проверьте, берется ли граница в ожидаемой позиции.

  • Enclose canvas в div элемент и убедитесь, что отображается в ожидаемом местоположении (например, путем установки style='border:solid;' для него, а).

Если отображается граница для холста и/или оберточного элемента, но нет рисунка, тогда есть некоторая ошибка с кодом рисования. Если это не так, есть проблема с позиционированием элементов (например, CSS пошла не так) или загрузкой документа как таковой.

UPD: Я запустил сайт с включенным Firebug, и он показал исключение при вызове drawImage.

img.src = 'images/snap9.jpg'; 
ctx.drawImage(img,0,0); // HERE! 

Но только для первой загрузки страницы в сеансе браузера.

Причина в том, что, когда вы установили src в адрес изображения, он не загружается немедленно и не может быть доведено до этого момента. Таким образом, выбрасывается, а остальная часть кода не выполняется.

Вы должны установить обработчик onload для изображений (см. here) и сделать остальную часть чертежа в этом обработчике.

Сообщите мне, если это поможет.

+0

Спасибо за ответ. Меня не интересует IE - мои пользователи используют Firefox, и холст там тоже не работает. Я устанавливаю ширину и высоту в html, который создает элемент (а не в javascript). –

+0

Спасибо, старший_george. Я помещаю текст внутри холста, и он не отображается. Я получил ответ от ИТ-безопасности в колледже, и он говорит, что они ничего не делают, чтобы отключить материал HTML 5. Сайт: –

+0

Ссылка на сайт не отображается. Попытайтесь повторить это, пожалуйста. –

Смежные вопросы