IE7 excanvas - $(document).ready() и IE7 создает проблему

РЕДАКТИРОВАТЬ: я определил ссылку на проблему ниже для использования $(document).ready() вместо использования старомодного атрибута onload тела

Эта проблема

В IE7 canvas/excanvas не рендерится, пока вы не нажмете на перезагрузку - я очищал кэш несколько раз, и результат не изменился.

Канва всегда пуста при начальной загрузке страницы, и появляется ошибка "объект не поддерживает это свойство или метод" - сообщение, которое ссылается на вызов.getcontext(). Однако, как только я нажимаю перезагрузить, это волшебным образом работает. Всегда после перезагрузки.. это работает. никогда иным способом добраться до страницы это не работает. Всегда есть ошибка при начальной загрузке страницы.

Под "начальной загрузкой страницы" я подразумеваю, когда страница загружается по нажатой ссылке, ручному вводу в адресную строку или с помощью кнопок "назад / вперед".

Вот репродукция: http://www.trevorsimonton.com/canvas_problem/example7.html

Обратите внимание, что там есть много дополнительного Javascript для воспроизведения среды Drupal, где возникла эта проблема.


Код

Я использую excanvas r3 - http://code.google.com/p/explorercanvas/downloads/detail?name=excanvas_r3.zip и Drupal 6

РЕДАКТИРОВАТЬ: я удалил кучу кода, который я имел, потому что у меня есть 2 места на сайте, где я работаю с холстами совершенно по-другому. Мне удалось воспроизвести проблему в указанном выше месте назначения (http://www.trevorsimonton.com/canvas_problem/example7.html).


Корень вопроса

Кто-нибудь знает больше о том, как excanvas или поведение IE7 может вызвать такого рода проблемы? Что, помимо кеша браузера, может вызывать загрузку страницы по-разному между командой "перезагрузки" и чем-то еще?

1 ответ

Решение

Потому что это Drupal 6, я использую Jquery 1.3.2

По-видимому $(document).ready() пожары до того, как испарения действительно готовы. Хотя это не так в большинстве браузеров, конечно, IE будет другим.

IE7 нужны все звонки getContext() происходить из функции, переданной в атрибуте onready тега body.

Сделать это в drupal немного сложно, но я просто жестко запрограммировал его в шаблоне страницы. Посмотрите это, если вы хотите, чтобы полный документ с практическими рекомендациями: excanvas и JQuery 1.3.2 был готов.

Другие вопросы по тегам