2

编辑:我已经确定了使用 $(document).ready() 而不是使用 body 的老式 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 的行为如何触发此类问题?除了浏览器的缓存之外,还有什么可能导致页面在“重新加载”命令和其他任何命令之间加载不同?

4

1 回答 1

1

因为这是 Drupal 6,所以我使用的是 Jquery 1.3.2

显然$(document).ready()在 excanvas 真正准备好之前触发。尽管在大多数浏览器中并非如此,但 IE 当然会有所不同。

IE7 需要所有调用都getContext()源自传递给 body 标记的 onready 属性的函数。

在 drupal 中执行此操作有点棘手,但我只是将其硬编码到页面模板中。如果您想要完整的操作方法,请参阅此内容:excanvas 和 JQuery 1.3.2 文档准备好不相处

于 2011-07-06T05:34:09.193 回答