编辑:我已经确定了使用$(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的行为?除了浏览器的缓存之外,什么可能导致页面在“重新加载”命令和其他任何内容之间加载不同?
答案 0 :(得分:1)
因为这是Drupal 6我正在使用Jquery 1.3.2
显然$(document).ready()
在excanvas准备好之前就开火了。虽然在大多数浏览器中情况并非如此,但IE当然会有所不同。
IE7需要对getContext()
的所有调用来自传递到body标签的onready属性的函数。
在drupal中这样做有点棘手,但我只是将其硬编码到页面模板中。 如果您想要完整的操作方法,请参阅此内容:excanvas and JQuery 1.3.2 document ready don't get along