KineticJS:如何让IE9将画布保存为图像?

时间:2014-05-07 11:02:24

标签: internet-explorer-9 kineticjs todataurl

我使用此代码段将画布保存为图片:当我点击快照按钮时,id =" snap",FF(或窗口)中的新标签,在chrome中打开并调用图像。

document.getElementById('snap').addEventListener('click', function () {
    stage.toDataURL({
        callback: function call (dataUrl) {
            window.open(dataUrl);
        },
        mimeType: 'image/png',
        quality: 1
    })
});

问题是IE9给了我一个错误并且没有显示该文件。错误表示打开文件需要一个软件。老实说,我不明白这个错误,微软正在谈论什么软件?如果有任何解决方案或解决方法,请提供帮助。

2 个答案:

答案 0 :(得分:0)

似乎没有解决办法在IE中完全使用JS来解决这个问题... 这里有一个解决方案,使用php查询:

http://danielmclaren.com/node/90

<?php
/**
 * an example URL for viewing a base64-encoded image:
 * http://example.com/decode.php?image/png;base64,iVBORw0KGgoAAAANS...
 */
$data = split(";", $_SERVER["QUERY_STRING"]);
$type = $data[0];
$data = split(",", $data[1]);
header("Content-type: ".$type);
echo base64_decode($data[1]);
?>

答案 1 :(得分:0)

我没有在IE 中测试此解决方案,但它在Chrome 35.x中运行良好。

在jQueryUI对话框中显示图像,并提示用户执行右键单击,另存为。

网页代码:

<script srv='jquery-ui.js'></script>

<div id='ImageExportDialog'></div>

使用Javascript:

$('#ImageExportDialog').dialog({autoOpen:false, modal:true});

使用Javascript:

document.getElementById('ImageExportDialog').src = canvas.toDataURL();