2016-06-20 9 views
1

Ich mache Chrome-Erweiterung, die jede Aktion im Browser speichern wird wie new_tab, new_window, switch_tab, close_tab ... Aber ich möchte Informationen lokal in der CSV-Datei speichern. Ich habe viele Anleitungen und Tutorials ausprobiert, aber immer noch nicht funktioniert. Für den Start möchte ich nur Testzeichenfolge in der lokalen Datei speichern, wird diese Datei sichtbar sein? Ich plane, diese Daten von ungefähr 20 Leuten zu erhalten.Chrome-Erweiterung zum Speichern von Daten in lokale Datei

In manifestieren:

{ 
    "manifest_version": 2, 

    "name": "Getting started example", 
    "description": "This is testing description", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html", 
    "default_title": "Click here!" 
    }, 
    "permissions": [ 
    "activeTab", 
    "tabs", 
    ] 
} 

In popup.html importiert wird Javascript <script type="text/javascript" src="popup.js"></script>

und in popup.js ist dies:

window.onload = function() { 
var filesystem = null; 
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 

window.requestFileSystem(window.PERSISTENT, 5*1024*1024 , onInitFs, errorHandler); 

    function onInitFs() { 
    filesystem = fs; 

    filesystem.root.getFile('treehouse.txt', {create: true}, function(fileEntry) { 

    fileEntry.createWriter(function(fileWriter) { 

    fileWriter.onwriteend = function(e) { 
    console.log("write done"); 
    }; 

    fileWriter.onerror = function(e) { 
    console.log("write error"); 
    }; 

    var contentBlob = new Blob(['JUST OWN TEXT FOR TESTING!'], {type: 'text/plain'}); 

    fileWriter.write(contentBlob); 

}, errorHandler); 
}, errorHandler); 

} 


function errorHandler(e) { 
    var msg = ''; 

    switch (e.message) { 
    case FileError.QUOTA_EXCEEDED_ERR: 
     msg = 'QUOTA_EXCEEDED_ERR'; 
     break; 
    case FileError.NOT_FOUND_ERR: 
     msg = 'NOT_FOUND_ERR'; 
     break; 
    case FileError.SECURITY_ERR: 
     msg = 'SECURITY_ERR'; 
     break; 
    case FileError.INVALID_MODIFICATION_ERR: 
     msg = 'INVALID_MODIFICATION_ERR'; 
     break; 
    case FileError.INVALID_STATE_ERR: 
     msg = 'INVALID_STATE_ERR'; 
     break; 
    default: 
     msg = 'Unknown Error'; 
     break; 
    }; 
    console.log('Error: ' + msg); 
} 
} 

geben Fehler von der Konsole Uncaught ReferenceError: fs is not defined on line filesystem = fs; Keine Datei wurde erstellt oder ich habe sie nicht gefunden. Ich nehme an, Wurzel ist irgendwo C:/oder C:/Windows

Kann jemand mit Code-Reparatur helfen? oder einen nützlichen Ratschlag?

+0

Sie scheinen die 'fs'-Variable nirgendwo zuzuordnen, weshalb sie null ist –

+0

Dank ,, nicht einen kleinen Fehler dort gesehen .. aufgrund dieser Anleitung (http://www.html5rocks.com/ de/tutorials/file/filesystem /) fs ist nicht zugewiesen es ist nur Parameter der Funktion, also mache ich fs als Parameter von onInitFs (fs) und Konsolenfehler verschwand, aber ich bekam 'Unbekannter Fehler' von errorHandler –

Antwort

0

müssen Sie onInitFs() zu onInitFs(fs) ändern, da die window.requestFileSystem-Funktion Ihnen Ihr neues Dateisystem-Handle als Argument für den Rückruf übergeben wird.

Verwandte Themen