我正在尝试使用r.js优化我的requireJS JavaScript应用。不幸的是,当它通过“localStorage”函数(浏览器内置的localStorage函数)时会停止。
错误消息:
ReferenceError: localStorage is not defined
发生错误的函数:
function getFromLocalStorage()
{
return localStorage.getItem('foo') ? JSON.parse(localStorage.getItem('foo')) : {};
}
如何修复此类错误?可以在r.js优化器中使用localStore吗?
更多信息:
构建脚本:
({
appDir: "../",
baseUrl: "js/",
dir: "./build",
mainConfigFile: "app.js",
paths: {
jQuery: "empty:"
},
name: "app",
findNestesDependencies: true
})
申请结构:
/
---> /js (where app.js lies)
---> /app (here lies the file with the localStore-call)
---> /lib
答案 0 :(得分:1)
首先,您的代码中有一个拼写错误。
我不想只编辑你的代码,但我认为:
return localStorage.getItemfootv') ? JSON.parse(localStorage.getItem('foo')) : {};
应该是:
return localStorage.getItem('foo') ? JSON.parse(localStorage.getItem('foo')) : {};
有了这个改变,我将你的代码复制到我的一个项目中,它完成了优化器。你用的是什么版本?我尝试使用最新版本2.1.1。
如果您使用的优化程序版本不是问题,我会尝试将localStorage
的引用更改为window.localStorage
,看看是否会产生影响。