msSaveOrOpenBlob

messmar

Erfahrenes Mitglied
Hallo Zusammen,

ich habe eine JavaScript Funktion umgeschrieben, um angezeigte Daten auf die Seite zusätzlich
als CSV Datei zum Runterladen anzubieten. Das ganze geschieht via einen Link/Button nach den
aufgelisteten Daten.

In der JavaScript Funktion speichere ich die Daten als Objekt Literal mit Komma getrennt etc.
Das Downloaden funkt. für FF und Chrome, nur IE geht's leider nicht, obwohl ich da den msBlob etc.
abfrage und dementsprechend den Code anpasse.

Error über IE Console:
"Die Eigenschaft "addEventListener" eines undefinierten oder Nullverweises kann nicht abgerufen werden."

HTML:
<div id="DOWNLOAD" style="font-size:40px; font-weight:bold;"></div>

Der JavaScript Code:
Javascript:
var data = [['name3', 'city3'],['name1', 'city1'],['name2', 'city2']];
var csvContent = '';

data.forEach(function (infoArray, index) {
    dataString = infoArray.join(';');
    csvContent += index < data.length ? dataString + '\n' : dataString;
});

function download(content, fileName, mimeType) {
    var a = document.createElement('a');
    mimeType = mimeType || 'application/octet-stream';

    if (window.navigator.msSaveOrOpenBlob) { // IE10

        //return navigator.msSaveBlob(new Blob([content], {type: mimeType}), fileName);
        var fileData = [fileName];
        alert( navigator.msSaveBlob( new Blob([content], {type: mimeType}), fileName) );

        var blobObject = new Blob(fileData);

        document.getElementById('#DOWNLOAD').addEventListener('click', function(){
            window.navigator.msSaveOrOpenBlob(blobObject, fileName);
        });


    } else if ('download' in a) { //html5 A[download]
        //alert( 'DOWNLOAD: ' + 'download --> ' + download );
        a.href = 'data:' + mimeType + ',' + encodeURIComponent(content);
        a.setAttribute('download', fileName);
        var a_El = document.getElementById("DOWNLOAD");
        a.innerHTML = "Download for Marelena";
        a_El.appendChild(a);
        return true;
    }
}
download(csvContent, 'theData.csv', 'text/csv');

Irgendein Tipp oder ne Lösung bitte?

Danke
Messmar
 
Zuletzt bearbeitet:
Hallo Leute,

Sry, der folgende Fehler geht auf meine Kappe ;-( die ID des DIVs ist natürlich
HTML:
DOWNLOAD
und nicht:
HTML:
#DOwNLOAD
Also bitte ignorieren.

Hab es mit der jQuery Selector Syntax verwechserlt. same on me.

Aber der Link für das CSV Downloaden geht leider noch nicht, aber ich erhalte keinen Fehler.
Ich brauche weiterhin - evtl. - Euere Hilfe.

Danke & Gruß
Messmatr
 
Guten Morgen Zusammen,

gelöst...
Javascript:
.....
if (window.navigator.msSaveOrOpenBlob) {
    var csvIE = function(fileName){
        a.setAttribute('download', fileName);
        a.innerHTML = "Download CSV";
        console.log( 'second Check: ' + csvContent );
        var a_El = document.getElementById("DOWNLOAD");
        blobObject = new Blob( [csvContent] );
        a.addEventListener('click', function(){
            window.navigator.msSaveOrOpenBlob(blobObject, fileName);
        });
        a_El.appendChild(a);
    };
    csvIE("file.csv");
}
.....

Danke
Messmar
 

Neue Beiträge

Zurück