2016-06-20 182 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函数会将您的新文件系统句柄作为参数传递给回调函数。

相关问题