【问题标题】:Jqplot image download by a button click in IEIE中点击按钮下载jqplot图片
【发布时间】:2014-02-20 10:47:11
【问题描述】:

我有 jqplot,我想在单击按钮后以 jpg 或 png 格式下载它。我可以使用

$('#chartdiv').jqplotSaveImage();

(chartdiv 是带有 plot 的 div)

它仅适用于 chrome 和 firefox。在 IE 中它不起作用。我在 IE 11 中尝试过。

我在 chrome 中还有另一个问题,下载的图像文件名为“download”,而在 Firefox 中,它是一些带有 .part 扩展名的有线名称(例如:- ka8ShgKH.part)。有没有办法将情节标题作为下载文件名?

谢谢。

$("#btnSaveImg").on("click", LoadImage);

LoadImage = function(){
    $('#chartdiv').jqplotSaveImage();
}

编辑 jqplotsaveimage函数

$.fn.jqplotSaveImage = function() {
    var imgData = $(this).jqplotToImageStr({});
    if (imgData) {
        window.location.href = imgData.replace("image/png", "image/octet-stream");
    }

};

【问题讨论】:

  • 错过函数jqplotSaveImage()..请在问题内加载脚本...
  • @MirkoCianfarani 我在上面添加了该功能。它是 jquery.jqplot.js 文件中的一个函数。
  • 看来你运气不好。 IE 对data URIs 的工作方式和位置非常具体:msdn.microsoft.com/en-us/library/cc848897%28v=vs.85%29.aspx
  • @Mark 感谢您的宝贵回复。你能告诉我有没有什么方法可以通过单击按钮下载 jqplot,在主要的三个浏览器(chrome、firefox 和 IE)上工作?
  • 我假设您可以访问网络服务器?您可以编写一个简单的脚本,将 base64 编码图发布到其中,然后将其作为文件发送回。您也可以像这样控制文件的名称。

标签: javascript jquery internet-explorer jqplot


【解决方案1】:

我正在使用 jqPlot,但在 IE 中使用上述内容时遇到问题,即使它在 Chrome 中工作,我也无法命名下载的图像。

我发现了这个案例 force download base64 imagehttp://danml.com/download.html 。这适用于更高版本的 IE 和 Chrome,您可以使用自己的文件名保存图像。 download.js 不仅可以用于图像。

//include the downoad.js file from http://danml.com/download.html

<button id="dwnl-chart-1" onClick="$.fn.jqplotSaveImage('chart-1', 'chart_name">Download as image</button>

    $.fn.jqplotSaveImage = function(id, filename) {

        var imgData = $('#'+id+'-parent').jqplotToImageStr({});
        if (imgData) {
            download(imgData, filename+'.png', "image/png");
        }
    };

【讨论】:

    猜你喜欢
    • 2023-02-12
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2019-07-27
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多