Javascript 未捕获类型错误:无法读取属性';根';未定义的
我试图在HTML5Web应用程序中实现离线功能的文件api存储,但遇到了一些问题 我在附带的JS文件(我为使用文件api创建的库)中包含以下代码: 在另一个JS文件中(我的大部分工作(业务逻辑)都完成了),我有: 我遇到的问题是在Javascript 未捕获类型错误:无法读取属性';根';未定义的,javascript,html,fileapi,Javascript,Html,Fileapi,我试图在HTML5Web应用程序中实现离线功能的文件api存储,但遇到了一些问题 我在附带的JS文件(我为使用文件api创建的库)中包含以下代码: 在另一个JS文件中(我的大部分工作(业务逻辑)都完成了),我有: 我遇到的问题是在initFS函数中,fs.root.getDirectory('files')…抛出一个错误:Uncaught-TypeError:无法读取未定义的属性'root' 我曾经尝试过一些文件api包装器(和),甚至尝试过编写自己的包装器,但在实现文件api方面却没有成功(每
initFS
函数中,fs.root.getDirectory('files')…
抛出一个错误:Uncaught-TypeError:无法读取未定义的属性'root'
我曾经尝试过一些文件api包装器(和),甚至尝试过编写自己的包装器,但在实现文件api方面却没有成功(每个包装器都产生了相同的错误)
我曾尝试使用应用缓存,但由于我的应用程序的性质,我遇到了内存限制(空间不足)。此外,这将只在Chrome中运行
如何使我的fs
对象初始化为适当的“文件系统”对象,以便脱机读取/写入文件?错误是因为fs
是未定义的
。未定义的
不能具有根这样的属性
initFS
被编写为期望为fs
传递一个值
function initFS(fs) {
fs.root.getDirectory(...);
}
但是,调用它时没有任何参数,因此fs
不会有这样的值
function InitalizeStore() {
initFS();
// ...
}
如何使fs对象初始化为正确的“文件系统”对象,以便脱机读取/写入文件
您可以使用它作为requestFileSystem()
的回调,您已经在其他地方做了
window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, initFS, errorHandler);
如果希望创建等待调用InitializeStore()
,请将该行移到函数中:
function InitalizeStore() {
window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, initFS, errorHandler);
// ...
}
请看,您必须请求一个文件系统,并将init函数作为回调传递。我是在与一位同事进行橡皮回避后意识到这一错误的——在我提交问题之后。但在修改之后,我仍然遇到了相同的问题,这已证明是一个时间问题。我必须将所有init添加到“就绪”中声明myfs
对象时发生的事件。
window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, initFS, errorHandler);
function InitalizeStore() {
window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, initFS, errorHandler);
// ...
}