2014-03-19 74 views
0

我使用webshim獲得畫布IE8工作。WebShim帆布和IE8文檔準備

所有的繪圖功能的工作大多是完美的,但由於某些原因,當我用我的$.webshims.polyfill('canvas');文件準備好處理程序不火。

我試過使用jQuery的$()$.webshims.ready('canvas', function() {但都沒有工作。

如果我打開控制檯並手動運行$.webshims.isReady('canvas'),它確實會返回false。如果我只是使用setTimeout,然後運行我的代碼,所有東西都可以正確繪製,所以看起來畫布已經加載了。

我使用加載畫布代碼:

window.FlashCanvasOptions = { disableContextMenu: true }; 

$.webshims.setOptions('canvas', { type: 'excanvas' }); 

$.webshims.polyfill('canvas'); 

任何想法?

+0

愚蠢的問題,但你打開控制檯,看着羯羊有任何錯誤或日誌?你使用的是真正的IE8還是IE10? –

+0

根本沒有錯誤 - 使用真正的IE8。 奇怪的是,我有一個測試情況下'$()'是工作,我的主要項目正常工作,如果我剛開始的時間間隔後繪圖,但我顯然不能依賴於'setTimeout'。 當我刪除'$ .webshims.polyfill(「畫布」);'了'$()'的作品,所以有它絕對的東西相關的填充工具。 –

+0

這很奇怪。作爲解決方法,您可以使用webshim.setOptions('waitReady',false);.要調試這個東西,你能簡單地在35行和937行的excanvas文件中設置兩個斷點(使用dev文件夾中的斷點)。提示:你也可以在IE8模式下使用IE9。 –

回答

0

如果你已經改變到一個不同的版本excanvas。簡單地採取這個版本,並在文件的最後複製下面的代碼:

(function(document){ 
webshims.addReady(function(context, elem){ 
    if(context == document){ 
     if(window.G_vmlCanvasManager && G_vmlCanvasManager.init_){ 
      G_vmlCanvasManager.init_(document); 
     } 
    } 
    webshims.$('canvas', context).add(elem.filter('canvas')).each(function(){ 
     var hasContext = this.getContext; 
     if(!hasContext && window.G_vmlCanvasManager){ 
      G_vmlCanvasManager.initElement(this); 
     } 
    }); 
}); 
webshims.isReady('canvas', true); 
})(document); 
+0

您是否使用標準excanvas的修改版本?這很有道理 - 我會在12個小時內通知你。 –