ReferenceError:未定义localStorage - requireJS,r.js optimizer和localStorage

时间:2012-10-25 18:20:36

标签: local-storage requirejs r.js

我正在尝试使用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

1 个答案:

答案 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,看看是否会产生影响。