4

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

1 回答 1

1

首先,您在上面的代码中有错字。

我不想只编辑您的代码,但我假设:

 return localStorage.getItemfootv') ? JSON.parse(localStorage.getItem('foo')) : {};

应该是:

return localStorage.getItem('foo') ? JSON.parse(localStorage.getItem('foo')) : {};



通过这种更改,我将您的代码复制到我的一个项目中,并且它通过优化器运行得很好。你用的是什么版本?我尝试使用最新版本 2.1.1。

如果您使用的优化器版本没有问题,我会尝试更改对localStorageto的引用,window.localStorage看看是否会有所不同。

于 2012-10-26T00:42:43.520 回答