2010-12-21 33 views
1

现在我无法获得简单的拉斐尔图形在extJS面板中显示。拉斐尔图形没有在IE8中显示

afterRender: function(){ 
     var size = Math.min(this.getHeight(), this.getWidth()); 
     this.innerEl = this.el.createChild({ 
      cls : 'ext-ux-clock-inner' 
     }); 
     this.canvas = Raphael(this.innerEl.dom, size, size); 
     var circle = this.canvas.text(50, 40, 'test').attr({ 
       font : '14px Helvetica, Arial', 
       stroke : "none", 
       fill : '#fff' 
      }); 
     TimelineWindowPanel.superclass.afterRender.apply(this,arguments); 
    } 

在Firefox和Chrome中文本显示正常,但我似乎无法让这个文本显示在IE8中。我试过使用未压缩的版本以及缩小版本,但没有运气。有人知道为什么拉斐尔不能与IE8一起使用extJS?

编辑: 如果我改变IE8到兼容模式下,它显示了拉斐尔图形

回答

1

我发现了一个变通的IE8。在屏幕上出现ExtJS窗口之前,似乎IE8试图绘制到画布上。我猜测发生了什么是IE8试图在画布上绘制并失败并且不尝试重绘。所以拉斐尔图片从不出现在画布上。我能够通过拖延.3秒使用javascript函数来解决此问题。setInterval()

+1

@Albinnoswordfish setInterval将继续调用您的代码。你可能已经知道了。如果您只想调用一次,请使用setTimeout。 – 2011-03-01 21:21:20