2016-06-20 227 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導入的javascript <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

謝謝,,沒有看到有小錯誤..由於本指南(http://www.html5rocks.com/ en/tutorials/file/filesystem /)fs沒有被賦值,它只是函數的參數,所以我把fs作爲onInitFs(fs)的參數並且控制檯的錯誤消失了,但是我得到了來自errorHandler的'Unknown Error' –

回答

0

您需要將onInitFs()更改爲onInitFs(fs),因爲window.requestFileSystem函數會將您的新文件系統句柄作爲參數傳遞給回調函數。

相關問題