4

html2canvas ライブラリを使用して、テーブルの png 画像を作成します。

Chrome、Firefox、Safari で動作します。

コードは次のとおりです。

$('#myTable').html2canvas ({     
    onrendered : function(canvas) {                           
        var img = canvas.toDataURL('image/png');
        var newWin = window.open('', '_blank','width=500,height=400');
        var htmlPage = "";
        htmlPage += "<html>";
        htmlPage += "<head>";
        ...
        htmlPage += "</head>";
        htmlPage += "<body>";
        ...   
        htmlPage += "<img src='"+img+"' width='400px'/>";
        ...   
        htmlPage += "</body>";
        htmlPage += "</html>";
        newWin.document.write(htmlPage);
    }
});

IE8 でページを開くと、ページが機能しません。

flashcanvas を使用する必要があることを読んだので、flashcanvas ライブラリを追加し、ページに次の行を追加しました。

<!--[if lt IE 9]>                
   <script type="text/javascript src="../sample/flashcanvas.js"></script>
<![endif]-->

ということで、IE8でページを開いたところ、flashcanvas.jsというライブラリが読み込まれていました!

しかし、問題は残ります!IE8は私に言います:

"The object does not support the property or the method 'toDataURL'"

誰でも私を助けることができますか?

4

1 に答える 1

1

要素がどのようにcanvas作成されるかはわかりませんが、コールバック内で次のようなことを行う必要があるかもしれませんonrendered:

if (typeof FlashCanvas != "undefined") {
    FlashCanvas.initElement(canvas);
}
var img = canvas.toDataURL('image/png');
// etc...

ここのドキュメントを参照してください: http://flashcanvas.net/docs/usage

于 2012-12-14T09:13:00.133 に答える