2016-08-09 96 views
0

zu speichern Ich versuche, eine Chrome-Erweiterung zu erstellen, die alle Anker-Tags, die auf eine WAV-Datei von einer bestimmten Seite verweisen, herunterladen wird. Ich benutze FileSaver.js. Mein Problem ist, dass die heruntergeladenen Dateien keine Daten enthalten und nur 'undefiniert' sind. Mein Code ist wie folgt (UrlList ist ein Array, das nur URLs enthält, die in .wav enden):Ich habe Mühe, eine Audiodatei von einer Webseite mit Javascript und XMLHTTPRequest

var xhrList = []; 
urlList.forEach(function (url, index) { 
    xhrList[index] = new XMLHttpRequest(); 
    xhrList[index].open('GET',url,true); 
    xhrList[index].responseType = 'blob'; 

    xhrList[index].onreadystatechange = function (e) { 
     if (this.readyState == 4 && this.status == 200) { 

      var blob = new Blob([this.response], {type:'audio/wav'}); 

      saveAs(blob, url); 

     } 

    } 
    xhrList[index].send(); 
}); 

ich auf ein paar Lösungen gesucht haben versucht, aber ich habe kein Glück mit ihnen hatte. Jede Hilfe würde sehr geschätzt werden.

+1

Sind die WAV-Dateien im selben Ursprung wie dieses Skript? –

+1

'console.log (this.response)' – epascarello

+0

@JaromandaX Die WAV-Dateien stammen von derselben Website wie die aktuell geöffnete Browser-Registerkarte, das Skript ist Teil der Chrome-Erweiterung. Denkst du, CORS ist das Problem? –

Antwort

0

Das Nachladen der Erweiterung hat den Trick gemacht.