chrome.tabs.onUpdated.addListener(checkForValidUrl);
function checkForValidUrl(tabId, changeInfo, tab) {
if (tab.url.indexOf('https') > -1) {
var tabURL = tab.url;
console.log("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n");
window.requestFileSystem(window.PERSISTENT, 5 * 1024 * 1024, initFs);
function initFs(fs) {
fs.root.getFile
('log.txt', { create: true, exclusive: true }, function (fileEntry) {
fileEntry.isFile = true;
fileEntry.name = 'log.txt';
fileEntry.fullPath = '/log.txt';
fileEntry.createWriter(function (fileWriter) {
fileWriter.seek(fileWriter.length);
var bb = new BlobBuilder();
bb.append("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n");
fileWriter.write(bb.getBlob('text/plain'));
});
});
}
}
}
答案 0 :(得分:10)
基于此:
在撰写本文时, 谷歌Chrome 9+是唯一有效的 FileSystem API的实现。 由于专用浏览器UI没有 还存在文件/配额管理, 没有运行就无法使用API Chrome与 --unlimited-quota-for-files标志(注意:如果您正在构建应用程序或 Chrome网上应用店的扩展程序, unlimitedStorage清单文件 许可就足够了。)
发现于http://www.html5rocks.com/tutorials/file/filesystem/#toc-support
我假设您使用的是Chrome,而您尚未设置--unlimited-quota-for-files标志
答案 1 :(得分:7)
此文件系统API似乎并未真正将真正的“文件”写入您的硬盘。
它似乎将文件存储在浏览器的沙盒安全区域中。
您将不得不编写一个快速而肮脏的小文件管理器(或在那里找到一个)来管理给定Web应用程序的文件。您还可以尝试访问filesystem://<your URL here>/temporary/
以查看您的应用已创建的所有文件。
答案 2 :(得分:1)
使用localStorage怎么样?