【问题标题】:KineticJS: How to make IE9 save canvas as image?KineticJS:如何让 IE9 将画布保存为图像?
【发布时间】:2014-06-24 07:48:50
【问题描述】:

我正在使用这个 sn-p 将画布保存为图像:当我单击按钮 snapshot,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 给我一个错误并且不显示文件。该错误表示打开文件需要软件。老实说,我不明白这个错误,微软在说什么软件?如果有任何解决方案或解决方法,请提供帮助。

【问题讨论】:

  • 我做了这个fiddle.jshell.net/n7ge3 ...然后我意识到我没有IE。希望它可以帮助其他人更快地尝试它......(使用 chrome)
  • 使用 IE,您的代码只会打开一个空选项卡,没有图像 :(

标签: internet-explorer-9 kineticjs todataurl


【解决方案1】:

目前似乎没有解决方案可以在 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]);
?>

【讨论】:

  • 是的,我在某处看到了一个教程(比那个更新),它是相同的概念:创建 php 页面等......所以我会接受你的回答。但对我来说,我会这样保留解决方案,因为这需要一些时间。谢谢:)
【解决方案2】:

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

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

页面代码:

&lt;script srv='jquery-ui.js'&gt;&lt;/script&gt;

&lt;div id='ImageExportDialog'&gt;&lt;/div&gt;

Javascript:

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

Javascript:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2018-01-22
    • 2015-08-31
    • 1970-01-01
    • 2015-01-10
    • 2017-08-04
    • 2014-05-30
    相关资源
    最近更新 更多