HTML5 canvas toDataURL在IE中抛出异常

时间:2016-11-13 20:52:14

标签: canvas svg todataurl

我正在尝试通过画布绘制将Highcharts创建的SVG图像转换为PNG图像,以便能够将其移交给htmlkit:

            function b64EncodeUnicode(str) {
                return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {
                    return String.fromCharCode('0x' + p1);
                }));
            }
            var svg = document.getElementsByClassName('highcharts-root')[0];
            var w = $(svg).width();
            var h = $(svg).height();
            var container = $(".highcharts-container").eq(0);
            var dataURL = "data:image/svg+xml;base64," + b64EncodeUnicode(container.html());

            // create PNG image by drawing on canvas
            var canvas = document.createElement("canvas");
            canvas.width = w;
            canvas.height = h;
            img = new Image();
            img.onload = function () {
                canvas.getContext("2d").drawImage(this, 0, 0);
                dataURL2 = canvas.toDataURL();  // this instruction throws an exception
                // some more code
            }
            img.src = dataURL;

这在Opera,Firefox和Chrom中运行良好,但遗憾的是在IE11中,最后一行引发了安全性异常。 我找到了一些关于这个问题的讨论,但没有一个与我的问题相符,我找不到解决方案。 我在Webmatrix3的本地IIS服务器上运行代码。

0 个答案:

没有答案