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>
但是,在某些情况下(而且在某些情况下,我的意思根本不是很多),我收到一个错误:
类型错误:window.VARS 未定义
我认为问题在于window.VARS
设置在正文中的事实(我们使用它来传输与页面相关的参数)。简单地在 DOM 周围移动它会有所帮助吗?IE:
<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"
并在每次尝试对其设置属性时遵循相同的模式。
我刚刚意识到的另一种更简单的方法是defer
在页面加载之前执行脚本:
<script data-main="/2018/v5/js/app" src="/2018/v5/js/lib/require.js" async="true" defer></script>
推荐阅读
- r - 如果数据集中的第 1 列和第 2 列相等,那么我必须使用 R 编程打印相应的 column2 值
- java - 将 OMOP 本体实例转换为 OMOP 关系数据库
- ios - 如何在 Daniel Gindi 图表上将 xAxis 上的数据向右移动?
- reactjs - React Native在android上发送数据[类型错误:网络请求失败]
- spring - Log Spring webflux 类型 - Mono 和 Flux
- apache-nifi - 在 NiFi 处理器“InvokeHTTP”中,您在哪里编写 POST 请求的正文?
- linux - 如何使进程与随机数量的活动线程同步?
- facebook - Facebook Marketing API:获取广告系列的结果和每个结果的成本
- python - 分组后如何平均减值?
- php - 使用 like 语句和 $wpdb->prepare 显示通配符所在的哈希值