2012-07-13 108 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的錯誤渲染。