2012-07-13 102 views
0

我正在使用Dojo GFX做一些简单的绘制,但IE 7/8(切换浏览器不是一个选项)有问题。Dojo GFX小部件显示类似浮动行为而不是正确定位

如果我创建一个div,设置一个表面并绘制一些rects,它们相对于div正确绘制,到目前为止这么好。

但是,我想要做的是创建一个小部件,这个小部件带有一个基于某些小部件特定数据绘制的嵌入式“表面”。因此,我有一个包含div的小部件,并将其绘制到此div中。当我这样做时,我创建的rects表现得好像他们正在响应float:right一样,出现的顺序是它们被创建并忽略'x'参数。

我认为这种行为是与CSS有关,但我还没有到底。任何想法或解决方案感激地赞赏!


更新:

  • 我已经停用所有样式表和我没有使用样式属性。行为没有区别。
  • 我检查了使用IE8开发工具生成的标记。除了包含div的不同位置之外,我能看到的唯一区别是v:roundrect元素在针对小部件div创建时没有子元素,但是在针对由ID引用的div创建时,它们具有空元素。
  • 通过阅读文档,我可以看到可能是负责的一个区别是,我正在做我的绘图的postCreate方法是操纵未添加到dom的div,而在硬编码的div上绘图是当它确实存在时完成。渲染方面的差异可能与此有关?是否有一个特定的生命周期函数适用于小部件?

回答

0

看来,如果你要使用Dojo GFX和借鉴那些在IE7/8的窗口小部件的一部分创建DOM元素,你必须实际做图中的startup()方法的重写。

postCreate()方法中绘制会导致类似于float: left的错误渲染。