javascript - RequireJS - 从页面内部看不到变量

标签 javascript requirejs

我正在尝试找出为什么我的新网站中不断出现这些错误:

<script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true"></script>
<title>Title</title>

<script>window.VARS = {
 thisPage: "home_new",
 temp_set: "luna"
 };
</script>

但是,在某些(有些,我的意思是根本没有很多)中,我收到错误:

TypeError: window.VARS is undefined

enter image description here

我认为问题在于 window.VARS 在正文中设置(我们使用它来传输与页面相关的参数)。简单地在 DOM 中移动它会有帮助吗?即:

<title>Title</title>

<script>window.VARS = {
 thisPage: "home_new",
 temp_set: "luna"
 };
</script>
<script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true"></script>

很难测试,因为我根本无法复制这个问题 - 但我在 Errorception.com(我们用于跟踪外部错误的系统)中看到了错误,所以我知道它的一个问题。如果可能的话,我只想修复它。

最佳答案

它应该可以解决你的问题,但在任何情况下,防止这种竞争条件都是很好的做法:

 window.VARS = window.VARS || {};
 window.VARS.thisPage= "home_new";
 window.VARS.temp_set= "luna"

每次尝试设置其属性时都遵循相同的模式。

我刚刚意识到的另一种更简单的方法是推迟脚本执行,直到页面加载之后:

 <script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true" defer></script>

关于javascript - RequireJS - 从页面内部看不到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018129/

相关文章:

javascript - 如何使用 sequelize 从响应中删除属性?

javascript - 如何在 Node.js 和 AMD 中使用 Backbone 模型(浏览器上的 require.js)

javascript - 如何使用 require js 将 jquery 库模块集成到 javascript 框架中

javascript - 在函数中使用 Knockout Push 会返回错误

javascript - 如何使用 jQuery/Javascript 获取两个时间值?

javascript - 从 Javascript 打开应用程序客户端

javascript - can.Control.defaults 和选项合并

javascript - 让 Istanbul.js 忽略 define (require.js) 定义

tdd - TypeScript 中的依赖注入(inject)

javascript - 如何在 side Array 中创建一个对象并将其推送到 object-javascript ?