2016-06-20 4 views
1

Я делаю расширение chrome, которое сохранит все действия в браузере, такие как new_tab, new_window, switch_tab, close_tab ... Но я хочу хранить информацию локально в файле csv. Я пробовал много руководств и руководств, но все еще не работал. Для начала я просто хочу сохранить тестовую строку в локальном файле, будет ли этот файл видимым? Я планирую получить эти данные примерно из 20 человек.Расширение Chrome для сохранения данных в локальный файл

В манифесте:

{ 
    "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", 
    ] 
} 

В popup.html импортируемого яваскрипта <script type="text/javascript" src="popup.js"></script>

и popup.js это:

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); 
} 
} 

Давать ошибку из консоли Uncaught ReferenceError: fs is not defined на линии filesystem = fs; Файл не создан или я его не нашел. Я предполагаю, что корень есть где-то C:/или C:/Windows

Может ли кто-нибудь помочь с ремонтом кода? или некоторые полезные советы?

+0

Вы, кажется, не присваиваете переменную 'fs' нигде, поэтому она равна нулю –

+0

спасибо, did not вижу небольшую ошибку там .. из-за этого руководства (http://www.html5rocks.com/ en/tutorials/file/filesystem /) fs не назначается, это просто параметр функции, поэтому я делаю fs в качестве параметра onInitFs (fs) и ошибки консоли, но я получил «Unknown Error» из errorHandler –

ответ

0

Вам необходимо изменить onInitFs() на onInitFs(fs), так как функция window.requestFileSystem передаст вам новый дескриптор файловой системы в качестве аргумента для обратного вызова.

 Смежные вопросы

  • Нет связанных вопросов^_^