在我的开发环境中,我有一个运行良好的Closure环境。但是,在新的文件夹和文件中,它不起作用。
例如,使用以下测试脚本:
goog.require('goog.dom');
console.log(goog);
console.log(goog.dom);
goog.dom.getElement('logout').innerHTML = "Heck";
就是这些,再加上HTML中的
base.js
。第一个
console.log
显示一个对象,其中包含所有正确的内容。所有文件也都加载到DOM中。但是,第二个控制台日志显示
undefined
,因此最后一行不起作用(显然)。 Chrome控制台错误为Uncaught TypeError: Cannot call method 'getElement' of undefined
。到底他妈发生了什么?如果尝试
XhrIo
,则相同。找不到goog
对象上的方法。谢谢。
最佳答案
Documentation:
注意:请勿将goog.require()语句放在同一脚本标签中
作为使用goog.required函数的代码的入口点,或者
类。 goog.require()调用将代码添加到文档后
包含调用的脚本标签。
所以
<script>
goog.require('goog.dom');
console.log(goog.dom);
</script>
打印
undefined
。但<script>
goog.require('goog.dom');
</script>
<script>
console.log(goog.dom);
</script>
要么
<script>
goog.require('goog.dom');
addEventListener('load', function() {
console.log(goog.dom);
});
</script>
打印一个对象。
仅供参考,还有其他可能的工作流程。例如,closurebuilder.py脚本可以帮助提前加载所有必需的文件。
关于javascript - 关闭-库未正确加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20561866/