通过按钮点击IE浏览器下载Jqplot图像

时间:2014-02-20 10:47:12

标签: javascript jquery internet-explorer jqplot

我有jqplot,我想点击一个按钮作为jpg或png下载它。我可以用

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

(chartdiv是带有情节的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");
    }

};

1 个答案:

答案 0 :(得分:0)

我正在使用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");
        }
    };